Dhcp
排除 wpad 中的本地地址
我有一個代理 Ubuntu 18.04,帶有 squid 3128 和 apache2,我發布了帶有選項 dhcp 252 的自動配置文件 proxy.pac。
該文件具有以下內容:
function FindProxyForURL(url, host) {return "PROXY 192.168.0.10:3128";}
我的本地網路中的某些電腦上有一些應用程序具有這些 url 供訪問:
http://localhost:8080 http://192.168.0.12:8090/app/bar
問題是 squid 對這種類型的請求有限制
如何配置 proxy.pac 以排除對本地地址的請求?(例如:192.168.0.0/24 或 localhost:port)
需要注意的重要一點是,臨時解決方案是手動將代理的 ip:port 放入瀏覽器中(在 Windows:控制面板/Internet 選項中),然後選中“不要將代理伺服器用於本地地址”框,然後proxy.pac 沒有意義。
把函式改成這樣:
function FindProxyForURL(url,host) { var hostIP; if (isIpV4Addr.test (host)) { hostIP = host; } else { hostIP = dnsResolve(host); } if (isInNet(hostIP, "192.168.0.0", "255.255.255.0")) { return "DIRECT"; } if (host == "localhost") { return "DIRECT"; } return "PROXY 192.168.0.10:3128"; }
這首先檢查主機部分是否為 IPv4 號碼。如果是,則直接用作IP。
如果不是,則將主機部分解析為 IP 地址並使用結果。
然後它將 IP 地址與指定的子網進行匹配;如果匹配,則指示瀏覽器直接訪問主機。
如果主機名是“localhost”,瀏覽器也被指示直接訪問主機(雖然我想知道瀏覽器是否會為“localhost”使用這個功能)。
最後,預設是使用代理。