Proxy

無法獲取 proxy.pac 文件以使瀏覽器直接訪問 localhost

  • July 30, 2014

我要把這個問題扔到野外。

我們剛剛開始使用代理來根據登錄名記錄使用者的網際網路使用情況。這是在 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

我看過的一些代理資訊網站:

提前致謝。

我沒有嘗試過,但根據 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";

提示:要在 firefox 中調試 pac 文件,您可以使用alert("blah")調試消息,然後查看將列印它們的錯誤控制台(工具菜單)。

引用自:https://serverfault.com/questions/27818