Firefox(火狐)默认不会使用socks进行DNS查询
本文按署名·非商业用途·保持一致授权作者:
,发表于2010年03月06日12时15分
socks5是支持UDP的,dns查询是通过UDP进行的。
按道理如果我们在Firefox设置了使用socks5代理,所有可能的查询都要经过代理才合理。但是今天tcpdump一看,设置了socks5代理访问之后,dns查询依然是通过本地客户端->dns缓存服务器来进行,而不是本地客户端->socks服务器->dns缓存服务器。
解决方法就是:
1)firefox地址栏输入about:config访问
2)搜索network.proxy.socks_remote_dns,设置为true(或真值)
为什么要设置呢?因为dns查询是明文进行的。这个理由相信足够了。(当然我并不是说SOCKS本身是加密的)
但是在使用pac文件,或者使用系统设置的情况下,这个配置是毫无作用的。只有设置为“手动设置代理”,这个配置才会起作用。杯具。这应该是个BUG。
至于Firefox为什么默认不使用socks5进行dns查询,我想可能是为了保持socks5和socks4(版本4不支持udp)的行为一致,或者担心socks服务器可能未配置好dns服务器IP导致引起客户困惑。
另外,Safari是会通过socks5进行dns查询的,而且似乎是不可以设置的。
环境:
Mac OSX 10.5.8
Firefox 3.5.8
Safari 4.0.4
ps: Safari这个版本号搞笑
