为什么 Firefox 仍然把你绕过子网里的内网主机交给代理
针对字面 IP 地址的绕过范围,并不一定豁免解析到该范围的主机名。
你把 192.168.0.0/16 加进了 Firefox 的 “不使用代理”列表。打开 http://192.168.1.20/ 会直连,但 http://wiki.office.example/ 仍然走到代理。两个 URL 可能指向同一台服务器。
关键差别在于 Firefox 用来匹配的目标字符串。IP 范围例外与主机名例外不可互换。在判断地址范围规则是否适用之前,不要假定手动绕过列表会解析每一个主机名。
| 输入的 URL | 可用于匹配的信息 |
|---|---|
| http://192.168.1.20/ | 字面 IP 地址 |
| http://wiki.office.example/ | 主机名 |
如果内网有自己的域,请使用合适的主机名或域例外,而不是猜测这些名称可能解析到哪些地址。把无关的公共服务排除在该例外之外。一个域中既可能有内部应用,也可能有外部托管的应用。
Mozilla 最初的解释 明确区分字面 IP 匹配与解析到这些 IP 的名称。那份文档是历史资料,因此在照抄其中的每个语法示例之前,请先核验当前客户端的行为与策略界面。
当策略需要 DNS 时
PAC 文件为需要感知 DNS 的决策提供了一个独立而明确的位置。它同时引入了脚本分发、执行与解析方面的失效模式。使用它是因为路由需求需要那套逻辑,而不只是为了让一长串绕过列表看起来更短。
在受管部署中,也要检查 Firefox 的实际策略。被锁定的 代理策略 可以解释为什么本地修改并不能决定路由。
排查问题时,请记录你输入的字面 URL,而不只是服务器的最终 IP。把主机名 URL 与字面地址 URL 相比较,会改变绕过决策可用的信息,而这正是两个请求可能走不同路径的原因。