如何在Linux上用Squid搭建代理服务器

如何在Linux上用Squid搭建代理服务器,第1张

安装步骤:

./configure --prefix=/usr/local/squid

make all

sudo make install(因为要拷贝到系统目录,需要root权限,所以sudo了,你也可以root登录执行,我是Ubuntu的系统,所以用sudo,有root权限就行)

检查配置文件:

sudo vi /usr/local/squid/etc/squid.conf

配置项1:

# Squid normally listens to port 3128

http_port 3128

配置项2:

acl localnet src 192.168.0.0/16

http_access allow localnet

配置项3:

# Uncomment and adjust the following to add a disk cache directory.

cache_dir ufs /usr/local/squid/var/cache/squid 100 16 128

cache_mem 32 MB (这一条必须配置)

否则你就会遭遇报错: 2013/10/12 16:16:55 kid1| WARNING cache_mem is larger than total disk cache space!

安装好了以后,系统中新建了一个用户squid,在组中一查,发现属于nobody组的:

cat /etc/passwd|grep squid

cat /etc/group|grep 65534

安装squid的所在目录是:/usr/local/squid

我闲得没事干,直接改了所属用户为squid:nobody

sudo chown -Rf squid:nobody /usr/local/squid

建立cache的时候,对下面目录需要nobody用户权限,这个是网上没有说的很清楚的地方,折腾了我半天:

sudo chown -Rf nobody /usr/local/squid/var/cache/

sudo chown -Rf nobody /usr/local/squid/var/logs/

一、Windows版Squid的下载与安装

下载windwosNT版本的squid

1、把squid-2.6.STABLE13-bin.zip解压缩,把里面的squid文件夹拷到c:/下(squid默认的是c:/squid)

2、squid/etc目录下把

squid.conf.default拷贝一份重新命名为squid.conf

cachemgr.conf.default拷贝一份重新命名为cachemgr.conf

mime.conf.default拷贝一份重新命名为mime.conf

3.用文本编辑器打开squid.conf,需要修改的地方:

找到http_port 3128在后面增加一行

http_port 80 transparent

找到#cache_peer sib2.foo.NET sibling 3128 3130 [proxy-only]在后面增加一行

cache_peer 192.168.1.8 parent 7001 0 no-query originserver

找到# TAG: visible_hostname在后面增加一行

visible_hostname volcano(任意命名)

找到http_access deny all在其前面加#将这一行注释掉,然后增加一行

http_access allow all

4.从命令行到c:/squid/sbin目录下执行

squid -i(将squid服务加入到服务里面)

squid -z

安装完成

5.从服务里启动squid

访问squid服务器:

http://192.168.1.2(你的squid服务器IP地址)>>>指向http://192.168.1.8:7001(web服务器地址)

如果把#http_access deny all打开把http_access allow all注释掉,你的访问就会被拒绝

你需要配置一下:找到下面两行

#acl our_networks src 192.168.1.0/24 192.168.2.0/24

#http_access allow our_networks

打开注释,修改你的内网ip(段)可以设为192.168.1.0/24一个也可以如上面的一样设一段IP

二、squid.conf配置文件

cache_mgr ghxu@zju.edu.cn #设置管理员邮箱,无关紧要

visible_hostname ibi #设置虚拟主机名,似乎squid2.5这个版本需要

#设置这一项,2.4却不需要

cache_peer 10.10.2.53 parent 6666 3130 login=account:passwd default no-query

#设置上级代理,其中10.10.2.53是我们校内的代理地址,6666是他的端口号,

#account,passwd则是上网帐号密码(当然我不会把我们真实的帐号贴出来)

#hierarchy_stoplist cgi-bin ? #注释掉这一行,不然不能访问带有"?"

#的url

#acl QUERY urlpath_regex cgi-bin ? #这两行没有具体测试,应该和cgi请求有关

#no_cache deny QUERY

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 563 # https, snews

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

acl lan-a src 10.49.41.150-10.49.41.190/32 #对ip进行控制,这行定义了一个ip

#段为组lan-a

http_access allow lan-a #这里控制组lan-a的ip可以使用squid代理

acl lan-b src 10.141.96.0/24 #同样设置了一个ip段,ip地址前三位是

#10.141.96的所有ip,其实就是我们寝室楼的ip段

http_access allow lan-b

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

icp_access allow all

never_direct allow all #这一行解决无法登陆的问题。

目前看不出什么问题。给你一些排查思路: 1. 在服务器上执行netstat -an 查看3129端口是否已经LISTEN 2. 在自己机器上用telnet访问以下服务器的3129端口,看看能否连上,能连上的话在里面输入一些HTTP头试试有没有反应。 3. 看一下squid的日志文件


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/90077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-06
下一篇2023-03-06

发表评论

登录后才能评论

评论列表(0条)

    保存