Firefox
Mozilla Firefox 中的 Wpad 文件問題
我有這個 wpad.pac
function FindProxyForURL(url, host) { if (isPlainHostName(host) || shExpMatch(host, "*.local") || isInNet(dnsResolve(host), "192.168.0.0", "255.255.255.0") || isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")) return "DIRECT"; return "PROXY 192.168.0.1:3128"; }
我的伺服器是 Ubuntu 18.04.1 x64,帶有 Squid Cache v3.5.27 (3128) 和 Apache v2.4.33,我使用選項 dhcp 252 發布 wpad.pac:
option wpad code 252 = text; option wpad \"http://192.168.0.1:3500/wpad.pac\";
文件儲存在:
/var/www/html/wpad.pac
它發佈在連結中:
http://192.168.0.1:3500/wpad.pac
由帶有 wpad.conf 的 apache 管理:
<VirtualHost *:3500> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/ <Directory /> Options FollowSymLinks DirectoryIndex wpad.pac AllowOverride None </Directory> <Directory /var/www/html/> # serve proxy autoconfig correctly: <Files "wpad.pac"> AddType application/x-ns-proxy-autoconfig .pac </Files> Options Indexes FollowSymLinks MultiViews AllowOverride ALL Require all granted </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
在 ports.conf 中:
Listen 3500
和防火牆規則:
iptables -t mangle -A PREROUTING -i enp2s0 -p tcp --dport 3500 -j ACCEPT iptables -A INPUT -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 3500 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 3500 -j ACCEPT
它適用於 Chrome 69.0.3497.100、IE v11.0.9600.19100 和 Opera 55.0.2994.61,但不適用於預設配置的 Mozilla Firefox 62.0.2(我沒有用 Edge 測試過,但它不相關)。然而 Mozilla 很好地載入了 wpad.pac 的 URL,但是沒有導航(它在以前的版本中也不起作用)。
我的 wpad.pac 有什麼問題?
重要的:
- 我不想在本地網路的每個 Mozilla 中指定 wpad.pac 的 URL,因為它們有很多電腦。我希望您採用預設配置。
- 帶有 android 的智能手機都沒有檢測到我的 wpad(我沒有用 iphone 嘗試過)
- 在某些站點中,他們說您必須在 Firefox 中禁用 ipv6(‘about: config’ network.dns.disableIPv6 為 true)。我已經這樣做了,但該解決方案不起作用。
- 我使用了這些替代 wpad.pac 文件,它們也不適用於 Firefox
備選方案1:
function FindProxyForURL(url, host) { if (isInNet(host, "192.168.0.0", "255.255.255.0")) return "DIRECT"; else return "192.168.0.1:3128"; }
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.1:3128"; }
替代方案3:
function FindProxyForURL(url, host) {return "PROXY 192.168.0.1:3128";}
提前致謝
升級到 Firefox Quantum 63x 時問題已解決