这个问题让我感到沮丧。
我已经建立了一个名为 wpad.dat 的文件(本质上是一个重命名的 proxy.pac 文件)并将它放在一个内部网站上。我已经设置了 DNS 条目,因此主机名 wpad 是 Web 服务器的 CNAME。我在网站上为 .dat 文件设置了适当的 MIME 类型。我从 DNS 全局查询阻止列表中删除了 wpad。
我知道配置文件在语法上是正确的,因为如果我手动将 Internet Explorer 的“使用自动配置脚本”设置http://wpad/wpad.dat
为显然正在使用代理(即,我看到我的浏览显示在日志文件以及我拒绝提出的某些网站中我的替换页面。)
但是,据我了解,我需要做的就是勾选“自动检测设置”框,Internet Explorer 本身应该去寻找http://wpad/wpad.dat
- 或者更准确地说,http://wpad.localdomain/wpad.dat
- 这也有效。
谁能帮我诊断这个问题?我只是看不到我错过了什么或出了什么问题。
谢谢 !!
(注意,也可以使用 DHCP 设置自动配置文件,但是我们有一个多站点组织,由服务器和路由器混合提供 DHCP,具体取决于位置以及使用具有非常基本的 3G 蜂窝调制解调器的远程办公室DHCP 设施。另外,据称只有 Internet Explorer 支持通过 DHCP 自动发现 Web 代理 - Firefox 和 Safari 都不支持。我们实际上并没有使用这些浏览器中的任何一个,但为了最大的兼容性以及便于未来的管理/更改我认为通过一个不错的单个 DNS 条目来让它工作肯定会更好。)
大卫,
如果您仍然遇到此问题,实际上修复起来相当简单。但它在任何地方都没有记录,我花了很长时间才在我的环境中对其进行整理。你所做的一切都很好,这就是我所说的 IE 如何获取它的 WPAD 信息并连接到 Web 服务器的错误。
首先,您不能为 WPAD 使用 CNAME 记录。使用 A 记录。傻,我知道,这不应该有任何区别,但绝对是这样。因此,在您的 DNS 中删除您的 CNAME,并为 Web 服务器的 IP 地址制作一条 A 记录。
其次(这对您来说可能更棘手),您需要将 WPAD.DAT 文件放在默认网站的根目录上,该网站正在侦听您在上面分配的 IP 地址。这是关键。它不适用于主机头字段或类似的东西。
说明:IE 所做的是将名称 WPAD 解析为 IP 地址。它必须能够直接将其解析为IP地址。如果它像 CNAME 查询那样解析为不同的名称,它将不起作用。因此,一旦 IE 获得了 WPAD 解析的 IP 地址,它实际上所做的就是连接到 http://<>/WPAD.dat。如果您在同一个网络服务器上设置了不同的网站,侦听端口 80,但使用像我一样的主机头字段(IE,“默认网站”以及“WPAD 网站”),那么您将一切都设置正确,但由于这个原因它不会工作。将您的 WPAD.DAT 文件的副本放在默认网站的根目录下,一切就应该开始工作了。
当然,如果您无法访问该网站的根目录(或者您无法保护该网站的根目录),那么您可能需要考虑将您的 WPAD 站点移动到它所在的其他服务器分配给该服务器的 IP 地址的根。
不管怎样,试一试。这就是对我有用的过程。我花了很长时间才让它工作,但它现在已经可靠地工作了很长时间。以上只是我对 IE 如何与 WPAD.DAT 文件相关的工作的理解,并且可能不正确 - 它只是基于对它在我自己的环境中所做的事情的观察。你的可能会有所不同,但我至少会花一些钱来解决你的问题。
让我知道你是怎么办的!马托:)
为 IE8 解决此问题的另一种方法(也可能适用于 IE7)是更改组策略中的几个设置。
修改了以上 2 个设置后,我可以让 WPAD 设置在 IE8 中工作。
注意:您不需要在域环境中使用它。在工作组 PC 上,只需使用 GPEDIT.MSC 更改本地计算机策略。
请参阅:如何在 Internet Explorer 中禁用自动代理缓存
问候, 凯姆
这个服务器故障问题在谷歌搜索中出现的频率很高,这就是我回复它的原因。我希望其他人觉得这很有用,因为这个问题对我来说真的很痛苦。
几乎我们域中大约 50 个用户的每台 Windows 7 计算机都受到影响 - 就我而言,四处走动和重置 IE 是不可接受的,所以我最终解决了如下问题:
首先,这是我遇到的一些有用但很难找到的链接:
http://blog.frankleonhardt.com/2011/wpad-and-windows-7-and-internet-explorer-8/
http://kb.k12usa.com/Knowledgebase/Proxy-Auto-Detect-WPAD-Issues-With-IE-Windows-7
http://infratalk.wordpress.com/2011/09/10/troubleshooting-windows-proxy-autodiscovery-wpad/
我建议您先阅读每个链接。
来自第一个链接的以下引用特别有趣:
“事实证明,微软的那些聪明人已经实现了一项功能,在几次失败尝试后停止检查 WPAD 服务器。它认为它知道漫游机在哪个网络上,如果不是,则在注册表中为自己留下一个注释"
我在链接中找到了 wpad reg 键,这实际上是我在 google 中找到链接的方式。我在测试的时候狠了下,发现下面的工作:
关闭所有 IE 会话,打开控制面板 -> Internet 选项 -> 连接选项卡 -> 局域网设置并取消勾选“自动检测设置”(以及所有其他选项) - 不要再次打开 IE。
删除以下 reg 键:
打开控制面板 -> Internet 选项 -> 连接选项卡 -> 局域网设置并勾选“自动检测设置”。
如果您刷新您的 regedit 窗口 (F5),您应该会看到重新创建的 wpad reg 键,但它将是空的。
现在打开IE。再次刷新 wpad reg,您应该会看到它填充了一个包含各种 wpad 信息的子项。
这是一个无需重置 IE 的修复程序,但我仍然需要以某种方式在 50 台机器上部署它。我这样做如下:
我使用如上所述重置的计算机创建了以下 reg(不要逐字复制,因为它是基于我们的域创建的并且我编辑了域名),wpadOverride 行是手动添加的:
这被添加到用户登录脚本中,基本上删除了 reg 键并替换它。
然后我创建了一个 GPO 来禁用“自动检测设置”并手动添加 wpad url:
用户配置 -> 策略 -> Windows 设置 -> Internet Explorer 维护 -> 连接 -> 自动浏览器配置 | 取消勾选“自动检测配置设置”并勾选“启用自动配置”并将“ http://wpad.example.local/wpad.dat ”插入“自动配置 URL”。
我还启用了“IE WPAD 决策缓存覆盖”(参见上面的第二个链接)。
然后我将其放置几天以部署到尽可能多的计算机,然后禁用“自动配置 URL”并再次勾选“自动检测配置设置”并从登录脚本中删除 reg 键。
我这样做是因为它似乎无法通过简单地取消勾选然后通过 GPO 勾选“自动检测配置设置”框来工作,因此最终可能不需要添加 URL。
我曾希望 WpadOverride 可以在没有额外步骤的情况下工作,但不幸的是它在我的情况下没有。
顺便说一句,在我们的网络上使用 cname 效果很好。
在修复期间关闭的任何计算机都只是在此之后手动处理。
我希望这可以帮助其他遇到这个问题的人,就像我通过谷歌所做的那样。微软的这个“功能”简直是愚蠢的。
我有完全相同的问题,但仅适用于几台计算机...
Wireshark 显示 IE 在访问目标 Web 服务器之前不会尝试在网络上进行任何操作。设置为主机 wpad 的 Web 服务器响应该特定 IP 地址上的任何主机名。
通过执行以下操作,我让非工作 IE8 客户端再次下载 wpad.dat:
不幸的是,在对 wpad.dat 文件进行修改后,很明显 IE8 在第一次下载 wpad.dat 后没有进行任何进一步的下载:-(
另一件需要注意的事情在以下 URL 中有详细说明: https ://technet.microsoft.com/en-au/library/cc995158.aspx
DNS 可能启用了阻止列表,其中 wpad 被定义为阻止记录,这是一种保护措施。
尝试在客户端机器上运行wireshark...看看IE在哪里看?您的网络服务器是否记录了它已为任何 wpad 提供服务?
Internet Explorer 将尝试访问“ http://wpad.your-machine's-dns-suffix.com/wpad.dat ”。确保配置为提供 wpad.dat 文件的 Web 服务器正在回答完全限定的主机名。(顺便说一句,IE 也会分解尝试每个父域的 DNS 后缀。看看http://wpad.com。拥有该域的人可能真的非常非常邪恶,如果他愿意的话...... .)
IE 版本 6.0.2900.xxxx 查找文件名“wpad.da”而不是“wpad.dat”请注意!;) 只需使用嗅探器或检查您的网络服务器日志。
希望这可以帮助!
正如 Tom Newton 建议运行 wireshark 以查看 IE 正在做什么(DNS 查询、HTTP GET、...),还请查看您的网络服务器日志。
注意 IE 在 GET 查询中将 IP 而不是主机名 (wpad) 作为“主机”发送,这样您就不能在网络服务器上使用虚拟主机“wpad”。
如果您使用的是 DHCP,则有一个设置(选项 252,IIRC),用于声明 wpad 文件的位置。我相信您对 Firefox 无法使用它是不正确的。
此外,您在搜索列表中有 localdomain 吗?