后来怀疑是Autoproxy的问题。以安全模式启动Firefox后,插件都被禁用,该开关选项生效了。开着,Twitter能打开;关了,Twitter打不开。
用Wireshark抓包,可以看到用AutoProxy(版本0.4b2.2011041023)的时候,不管socks_remote_dns是什么值,都看不到DNS数据包。又在用户档案的extensions/autoproxy@autoproxy.org里面查找这个选项,在chrome/content/proxy.js里面看到:
可以看到AutoProxy确实把socks_remote_dns设置成了1,所以在about:config里面设置也无效了。这样做的好处是用户无需知道这个选项,也可以打开被DNS污染的网站,但是最好在文档里说明一下。/**
* Refresh proxy name & available proxy servers
*
* newProxyInfo(type, host, port, socks_remote_dns, failoverTimeout, failoverProxy)
*/
proxy.server = []; proxy.getName = [];
for each (var conf in proxy.validConfigs) {
proxy.getName.push(conf.name);
proxy.server.push(pS.newProxyInfo(conf.type, conf.host, conf.port, 1, 0, null));
}