Mozilla Firefox 中的 Wpad 文件出现问题

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

由 apache 使用 wpad.conf 管理:

<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 出了什么问题?

重要的:

  1. 我不想在本地网络的每个 Mozilla 中指定 wpad.pac 的 URL,因为它们有很多计算机。我希望您采用默认配置。

  2. Android 智能手机都检测不到我的 wpad(我没有尝试过 iPhone)

  3. 在某些网站中,他们说您必须在 Firefox 中禁用 ipv6(“about:config”network.dns.disableIPv6 为 true)。我已经这样做了,但该解决方案不起作用。

  4. 我使用了这些替代的 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";
}

替代方案2:

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

提前致谢

答案1

升级到 Firefox Quantum 63x 后问题得到解决

相关内容