我要把这个问题扔到野外。
我们刚刚开始使用代理来根据登录名记录用户的互联网使用情况。这是在 ISA Server 2004(在我们的 Internet 网关服务器上)上设置的。启用集成和基本形式的身份验证,同时要求所有用户进行身份验证。我已经勾选并启用了 ISA 上的一系列设置,以便它忽略内部地址和域。
为了将我们的用户指向我们的代理服务器,我在我们的 DHCP 服务器上使用了 Detect with DHCPINFORM 来将客户端指向 proxy.pac 文件的网络位置(在此处描述)。我还将 wpad.dat 设置在与 proxy.pac 相同的区域(两个文件相同)。
我正在玩的当前 proxy.pac 文件:
function FindProxyForURL(url, host)
{
// Trying to save localhost
if (localHostOrDomainIs(host, "localhost")) return "DIRECT";
if shExpMatch (url, "http://localhost*") return "DIRECT";
// If specific URL needs to bypass proxy, send traffic direct.
var resolved_ip = dnsResolve(host);
if (isInNet(resolved_ip, "172.22.145.0", "255.255.255.0") ||
isInNet(resolved_ip, "192.168.1.0", "255.255.255.0") ||
isInNet(resolved_ip, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
return "PROXY ^gatewaynamehere^.baytech.local:8080; DIRECT";
}
(我们的内部 IP 是 172.22.145.* 范围)
现在我遇到的问题是 proxy.pac 文件使浏览器在请求 localhost 或 127.0.0.1 时转到代理。当我监控我的 IP 地址时,我可以看到 ISA 服务器上的请求。我可以在我们的 Intranet 中请求其他服务器并且它不会触及代理(这是正确的)。但我怀疑这是因为 ISA 服务器上的设置而不是因为 proxy.pac 文件(我可能是错的)。
一个附带问题是我们需要手动将 Firefox 指向 proxy.pac 文件以使其适用于 Firefox。此外,少数 IE 用户也需要手动指向。最好的办法是将我们的浏览器设置为自动检测(IE 和 FF)并且无论用户在哪里都能正常工作。
通过组策略或浏览器设置手动设置它并不理想,因为它会导致笔记本电脑被带回家的人出现问题。
我也尝试过禁用 IE 代理缓存,如下所述:http://support.microsoft.com/kb/271361
我看过的一些代理信息网站:
- pac文件功能
- homepages.tesco.net/~J.deBoynePollard/FGA/web-browser-auto-proxy-configuration.html
- www.findproxyforurl.com
提前致谢。
我没有尝试过,但根据 sun.com docco,IsInNet 函数将主机而不是 IP 作为第一个参数。
所以我认为这是:
应该改成这样:
提示:要在 Firefox 中调试 pac 文件,您可以使用
alert("blah")
调试消息,然后查看将打印它们的错误控制台(工具菜单)。好的,我想我现在正在运行这个......
我的实际问题是它从一开始就没有运行过。此外,如果 proxy.pac 文件有错误,它会决定静默死去。所以我回到基础并尝试使用一个非常简单的 proxy.pac 文件在我的机器上本地运行一个。(当我的警报第一次开始出现时,我感到震惊)。
一旦我完成了这项工作,我就会逐行建立它,直到我有适合我的网络的东西。
对于该线程的所有未来读者,还有一些更重要的信息!
然后我将它移回我最初使用的服务器,然后遇到了自动检测 FF 和 IE 的问题。经过一番研究,当自动检测打开时,IE7 和 IE8 似乎以不同的方式处理 pac 文件。(我使用的代理拾取方法是 DHCP)。所以 IE8 似乎需要一个ipconfig /renew来获取一个新的,而 IE7 需要一个ipconfig /renew 和一个 ipconfig /flushdns
另外:Firefox 只报告了我在错误控制台 (Ctrl+Shift+J) 中的警报,而 IE 使用了弹出警报。
几天后,DHCP 252 选项传播到所有工作站。然而,FF 似乎在自动检测方面仍然存在困难,所以我只是使用手动点或 FoxyProxy 插件作为解决方法。
感谢大家的投入!
基于 Mozilla 的浏览器允许您使用文件:URL,这使得您的 .pac 文件的原型制作和测试变得更加容易。
我没有在 IE 中尝试过这个。