WinHTTP 的绕过列表可以包含特殊标记 <local>。在此语境下,local 指的是不带句点的服务器名。它并不是对每个私有 IP 地址或 Wi-Fi 上每台设备的通用分类。

因此,短主机名和带点的主机名是不同的输入。请求 http://intranet/ 的应用程序可以匹配该标记,而 http://intranet.example.internal/ 则需要适用的显式规则。

阅读已配置的例外

对于预期的 WinHTTP 配置,一个静态示例如下:

netsh winhttp set proxy `
  proxy-server="203.0.113.10:8080" `
  bypass-list="<local>;*.example.internal"

该端点仅作示例。此命令会更改 WinHTTP 配置,不应被当作通用的浏览器修复方法。做出该更改前,请记录原有配置,并确认目标应用程序确实使用它。

通配符规则和 local 标记承担不同的作用。像 192.168.1.10 这样带点的 IP 字面量并不是不带句点的主机名。如果此类地址应当直连,请使用受适当支持的显式例外,而不要假定 local 一词涵盖了它。

检查请求的实际主机

服务可能使用短名称,而浏览器书签使用完全限定名称。即使两个名称最终指向同一台服务器,得到的路由也可能不同。

请求也可能由应用程序特定的代理信息或 PAC 评估控制,而不是你检查的静态默认值。在更改其他位置的绕过列表之前,请确定故障应用程序实际使用的来源。

要比较行为,请记录同一客户端的 URL 主机名和所选代理策略。不要仅仅因为某个被有意排除的主机仍然直连,就替换一个正常工作的公共代理。

请将此区别与 DNS 和内核路由区分开:绕过规则只决定请求是否使用代理。它不会让原本不可达的目标变得可达。

相关文章