AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 27818
Accepted
Qwerty
Qwerty
Asked: 2009-06-18 22:00:38 +0800 CST2009-06-18 22:00:38 +0800 CST 2009-06-18 22:00:38 +0800 CST

无法获取 proxy.pac 文件以使浏览器直接访问 localhost

  • 772

我要把这个问题扔到野外。

我们刚刚开始使用代理来根据登录名记录用户的互联网使用情况。这是在 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

提前致谢。

internet-explorer firefox isa-server proxy localhost
  • 4 4 个回答
  • 27931 Views

4 个回答

  • Voted
  1. Jason Tan
    2009-06-18T22:29:39+08:002009-06-18T22:29:39+08:00

    我没有尝试过,但根据 sun.com docco,IsInNet 函数将主机而不是 IP 作为第一个参数。

    所以我认为这是:

    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";
    

    应该改成这样:

    if (isInNet(host, "172.22.145.0",  "255.255.255.0") ||
            isInNet(host, "192.168.1.0", "255.255.255.0") ||
            isInNet(host, "127.0.0.1", "255.255.255.255"))
    return "DIRECT";
    
    • 1
  2. Duncan Smart
    2009-06-19T01:45:12+08:002009-06-19T01:45:12+08:00

    提示:要在 Firefox 中调试 pac 文件,您可以使用alert("blah")调试消息,然后查看将打印它们的错误控制台(工具菜单)。

    • 1
  3. Best Answer
    Qwerty
    2009-07-08T18:00:58+08:002009-07-08T18:00:58+08:00

    好的,我想我现在正在运行这个......

    我的实际问题是它从一开始就没有运行过。此外,如果 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 插件作为解决方法。

    感谢大家的投入!

    • 1
  4. benc
    2009-07-19T07:17:28+08:002009-07-19T07:17:28+08:00

    基于 Mozilla 的浏览器允许您使用文件:URL,这使得您的 .pac 文件的原型制作和测试变得更加容易。

    我没有在 IE 中尝试过这个。

    • 0

相关问题

  • Windows 终端服务器上的 Flash 网站管理

  • 如何从公共互联网计算机安全浏览?

  • Internet Explorer 无法加载部分页面或图像

  • 是否有理由在 Windows Server 上升级 Internet Explorer?

  • 如何说服我的 IT 经理将企业从 IE6 升级到更新的浏览器?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve