squid二级代理设置及配置文件例子 - [服务器区]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及
本声明
http://linux.blogbus.com/logs/45714432.html
http://linux.blogbus.com/logs/45714432.html
两个squid配置from 88, 我的squid就是从这两个例子改出来的
tips: 二级代理和直接连的话改always_direct allow all和never_direct allow all, 然后改动cache_peer或者注释掉
适合工大校内架设squid代理的squid.conf,我在这里抛砖引玉了
cache_mgr [email protected] #设置管理员邮箱,无关紧要
visible_hostname ibi #设置虚拟主机名,似乎squid2.5这个版本需要
#设置这一项,2.4却不需要
cache_peer 10.18.2.53 parent 8080 3128 login=account:passwd default no-query
#设置上级代理,其中10.10.2.53是我们校内的代理地址,8080是他的端口号,
#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 #这一行解决无法登陆的问题.
发信人: wddllyy (到处找血吸的跳蚤), 信区: LinuxApp
标 题: squid开多端口代理的心得
发信站: 飘渺水云间 (Tue Mar 9 08:48:25 2004), 转信
利用squid开二级代理很方便,就是在配置文件上做点文章, 它给的那个default的
配置文件看起来就头大。一般都是重新写一个。
给紫金港的兄弟们开了一个代理。用的是yq的动态ip做的父代理。
但是动态实在是有够e。不能上国外不说,还经常抽筋。
由于手头有另一个代理A可以上国外,于是萌发了开两个二级代理的念头。
只有一台电脑,当然只能在一个自己上开两个端口(其实后来才想到可以用认证的方法,
对一个端口进来的不同的用户采用不同的的父级代理,这样squid的配置文件会稍微麻烦
一点),先开始不得要领,也没有现实的例子,看见有人这样开了,问一问才知道是windows
下用wingate很简单就能做到了。
wingate能想到,我想squid也应该能做到,自己慢慢捉摸吧。
基本想法是:
服务端口3128-----squid-----动态ip连接----国内访问
服务端口6666-----squid-----代理A ----国外访问
先想到的是启动两次squid,第二次手动指定另外一个配置文件给它(-f),一尝试
得到的信息是Squid is already running! Process ID **** 。想一想这种方法也有够
野蛮,效率和稳定两不顾,于是弃之不用。
于是开始打配置文件的主意,在google上查到论坛上关于两个端口采用不同的认证的
配置方法,OK,开两个端口就有路了,下来关键是对两个端口的接入进行分流。squid一般
情况下是对不同的连接目标地址所在域进行分流的,比如把对.com的接连请求交给父代理
X来做,对.edu.cn的请求代理交给父代理Y来做,
这种情况下用到了cache_peer_domain这个选择规则
cache_peer_domain Y .edu.cn
cache_peer_domain X !.edu.cn
既然有目标域的选择规则,那有没有针对其他情况的选择规则呢?
还是在squid.conf.default中查找到cache_peer_access这个功能强大的访问控制规则
(其实这个又大又乱的squid.conf.default里所有的东西都教给我们了
,一开始就该好好阅读的)
比如通过访问控制列表进行选择:
对于来自192.168.1.0的请求我们使用local.proxy.com父代理服务
器,而对于其他请求由本地子代理服务器直接进行处理,
这时我们可以使用cache_peer_access选项来实现:
acl LocalNet src 192.168.1.0/2525250
acl all src 0.0.0.0/0.0.0.0
cache_peer local.proxy.com parent 3128 3130
cache_peer_access local.proxy.com allow LocalNet
cache_peer_access local.proxy.com deny all
结合cache_peer_access的强大功能组合完成了下面的配置代码
http_port 3128
http_port 6666
#声明两个端口
acl X myport 3128
acl Y myport 6666
http_access allow X
http_access allow Y
#接受两个端口的http请求
acl all src 0.0.0.0/0.0.0.0
cache_peer 10.10.4.52 parent 6666 3130 login=***:*** default no-query
cache_peer 10.***.**.** parent 3128 3130
cache_peer_access 10.10.4.52 allow !Y
#让动态ip的父代理响应3128端口的接入,对6666端口的不响应
cache_peer_access 10.***.**.** allow Y
#让A代理响应6666端口的接入
这样便很好的对不同端口的访问进行了分流。使用起来效果也不错。
胡乱写一点希望对大家有用
设置 文件 squid
linux
0
收藏
上一篇:iptables配置——NAT端... 下一篇:全球20个最大的种子站,让你下到...