PAC 结果同时指明代理和协议。如果你的 Firefox 部署需要 SOCKS5,就在返回值里明确写出来:

return "SOCKS5 proxy.example:1080";

如果 PAC 策略使用公开端点,从 SOCKS5 代理列表 中选择候选,并保留显式的 SOCKS5 结果。通用的 SOCKS 标记有兼容性历史。它并不是一条每个浏览器都必须理解为最新 SOCKS 版本的可移植指令。

在此处考察的 Firefox 实现中,PAC 解析器把显式 SOCKS5 映射到版本 5 套接字提供程序,并要求在服务器端解析目标主机名。手动代理配置走的是另一条设置路径。因此,不应把手动设置中的首选项名称当作对每条 PAC 结果的通用解释。

把确切的浏览器版本、已加载的 PAC 脚本和返回的标记记入记录。你编辑过的脚本未必是客户端取到的脚本,而为某一主机返回的不同路由可能改变观测结果。

这涉及与所选 SOCKS 路由关联的目标名称。客户端仍需到达代理端点,其他应用也保留各自的 DNS 行为。不要把一个正确的 PAC 结果变成设备范围内所有查询现在都远程进行的说法。

当配置必须支持多个浏览器时,应检查它们有文档记录的 PAC 标记支持,而不是把 Firefox 源码层面的细节搬到另一套实现里。

相关文章