透明代理
有一种称为透明代理的方案,可以让内部用户不用设置代理服务器地址和传输端口,当客户端连接到网络的时候,感觉可以象直接上网一样,实际上却是通过代理服务器浏览网页,这种透明的方式可以解决内部网络的设置问题,让用户丝毫不感觉代理服务器的存在。
就技术层面而言,要将SquidProxy设置为透明模式,实际上是在NAT路由器上,将用户的HTTP请求(TCP端口80)重定向到SQUIDPROXY传输的HTTP PORT上(TCP类型PORT3128),当然这需要在/ETC/SQUID/SQUID.CONF文件里对HTTP_ACCEL功能做一些设置。要将SQUID作成具有透明功能的代理服务器,其设置步骤如下:
(1)#ipchains -A input -p tcp -d 0.0.0.0/80 -j REDIRECT 3128
(2)修改/etc/squid/squid.conf里的四项设置如下所示:
1.httpd_accel_host virtual
2.httpd_accel_port 80
3.httpd_accel_with_proxy on
4.httpd_accel_uses_host_header on
(3)重新启动SQUID
请注意上述第一点中的IPCHAINS的规则来说,无论来源是谁只要到anywhere提出http请求,目的地为(0.0.0.0/0 80),都将请求重新定向到端口,3128。第二点是将Squid配置里面有关HTTP重定向功能打开,其意义是用SQUID PROXY做HTTP请求的加速处理
设置完成以后,请记住将客户端的网管器(GATEWAY)指向NAT ROUTER当客户端提出HTTP的传输请求之后,客户端就会将封包传输到NAT ROUTER,此时在NAT router上会自动将传输的HTTP封包后的PORT80重定向到PORT 3128,这样一来,传输网页的工作就会利用SQUID来完成
注释:
有关NAT ROUTER的设置,请参考关于防火墙相关的讲解
看了以上设置透明代理的方法后,相信您会觉得SQUID真是一套功能强大的代理服务器,下面简单的说明设置透明代理店的四条命令的含义:
#用法:httpd_accel_host [virtual] [hostname]
1.httpd_accel_host hostname
ttpd_accel_host virtual ;用来设置虚拟HTTPD SERVER
2.httpd_accel_port 80;在TCP80端口监听HTTP请求
3.httpd_accel_with_proxy on;使用PROXY 加速HTTP的传输
4.httpd_accel_uses_host_header on;设置允许使用http的”host:Header“信息,作为加速http传输的根据,绝大部分http都支持这一项目