Mac OS X 的全局代理
Mac 上可以使用 pac 文件自动设置全局代理,相当的方便,但是有个小问题,设置为 SOCKS5 的时候,Firefox,Chrome 不会使用远程 DNS, 而 Safari 不可以使用 SOCKS5 这种方式,于是就有了下面的解决方案:
function FindProxyForURL(url, host)
{
var proxy = "SOCKS5 127.0.0.1:7777;SOCKS 127.0.0.1:7777";
if (shExpMatch(url, "*.37signal.com/*")) { return proxy; }
if (dnsDomainIs(host, "twitter.com")) { return proxy; }
if (dnsDomainIs(host, "github.com")) { return proxy; }
if (dnsDomainIs(host, "img.ly")) { return proxy; }
}
这样三个浏览器都可以正常使用了。
补充:也可以写个 php 之类的脚本根据 User-Agent 动态的判断是 SOCKS5 还是 SOCKS,每个浏览器在启动时会带着 UA 去请求。