域环境下配置squid的IE代理自动检测设置

squid用了好多年,但是总的来说也不算精通,都是需要什么去查什么,然后照着做。。。

今天偶然发现还有wpad这东西,全名为Web Proxy Auto Discovery。顾名思义,就是让IE浏览器自动检测设置,而无需设置代理服务器及端口或者设置代理脚本。

当然前提是在域环境下,否则你需要更改的东西可就多了,也不能保证好用。本例是在域环境下测试并部署成功的。

英语好的可以去看参考文章http://www.wlug.org.nz/WPAD

默认情况下,域用户登录计算机后,IE会按以下地址自动检测代理设置

http://wpad.xxx.domain.local/wpad.dat
http://wpad.domain.local/wpad.dat
http://wpad.local/wpad.dat
http://wpad/wpad.dat

xxx.domain.local是你域的地址,所以最简单的办法就是在域里设置wpad.xxx.domain.local这个域名,指向你的代理脚本所在的地址(注意这个地址是代理脚本所在的地址,可以不是代理服务器的地址)

然后再代理脚本所在的服务器网站根目录创建一个名为wpad.dat的文件,文件内容其实就是你原有的代理脚本设置

在设置的时候有个小插曲,那就是wpad这个域名被windows当作黑名单处理了,我们需要去掉或关闭这个特性。

由于我使用的是squid作为代理服务器,才有这个问题,如果你使用的是ISA2006或者TMG2010那就没这个问题,因为都是微软自家的东西,不会做限制的。

关闭这个特性需要安装soppurt tools,命令行下运行如下命令即可

dnscmd [servername] /config /enableglobalqueryblocklist 0

把[servername]替换为你服务器的名称,这里我是偷了个懒,直接关闭了,其实可以修改这个blacklist的,有需要的可以自己google

更改完这些以后,可以找一台域用户登录的计算机测试了,我这里的环境使用xp/2003/win7都没问题。

后续测试发现,不用域环境也是可以的,但是需要开启dhcp,让dhcp推送一个域后缀,然后把推送到这个域后缀增加个wpad的子域名就可以了。

另外,再说一下之前做的各种尝试,包括dhcp选项,dns修改,都罗列如下

dhcp修改/etc/dhcpd.conf

option option-252 "http://wpad.xxx.domain.local/proxy.pac";
option wpad-url code 252 = text;
option wpad-url "http://wpad.xxx.domain.local/proxy.pac\n";

第一行可能不好用,由于dhcp版本问题,出错注释掉

dns配置需要增加如下设置

wpad IN A 192.168.0.100
IN TXT "service: wpad:!http://wpad.xxx.domain.local:80/proxy.pac"
wpad.tcp IN SRV 0 0 80 wpad.xxx.domain.local.