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

내 서버는 Squid Cache v3.5.27(3128) 및 Apache v2.4.33이 포함된 Ubuntu 18.04.1 x64이며 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에 무슨 문제가 있나요?

중요한:

  1. 내 로컬 네트워크에 있는 모든 Mozilla에는 컴퓨터가 많기 때문에 wpad.pac의 URL을 지정하고 싶지 않습니다. 기본 구성을 사용하고 싶습니다.

  2. 안드로이드 스마트폰에서도 내 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로 업그레이드한 후 문제가 해결되었습니다.

관련 정보