操作系统版本:OS X 10.8.2
PAC 文件路径:http://localhost/proxy.pac
目标应用程序:Safari、Tweetbot
.pac 中的示例规则:
if (shExpMatch(url, '*domain.com*')) return 'SOCKS5 127.0.0.1:8080';
在 Chrome 中,SOCKS5 代理运行正常,但 Safari/Tweetbot 就是无法访问匹配的 URL。
看起来匹配的 URL 的服务器对于 Safari/Tweetbot 来说已关闭。
我查看了 Console.app 中的日志,但一切正常。
我想知道是否有办法让 .pac 适用于沙盒应用程序?
答案1
好的,我知道如何解决这个问题,编写如下规则:
if (shExpMatch(url, '*domain.com*')) return 'SOCKS5 127.0.0.1:8080;SOCKS 127.0.0.1:8080';
或者使用以下方式设置 HTTP 代理私有网络,然后像这样编写规则:
if (shExpMatch(url, '*domain.com*')) return 'PROXY 127.0.0.1:8118';
8118
是 Privoxy 的默认端口。
我更喜欢第二种方式,虽然我还没有证明这一点,但它看起来更稳定。
答案2
由于未知的原因,从现在开始您应该首先在系统网络设置中设置代理服务器,然后才能照常使用 PAC 文件。
换句话说,在系统网络设置中检查 Autoproxy 和 Socksproxy。