Eu tenho este 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";
}
Meu servidor é o Ubuntu 18.04.1 x64, com Squid Cache v3.5.27 (3128) e Apache v2.4.33, e publico wpad.pac com a opção dhcp 252:
option wpad code 252 = text;
option wpad \"http://192.168.0.1:3500/wpad.pac\";
e o arquivo é armazenado em:
/var/www/html/wpad.pac
E está publicado no link:
http://192.168.0.1:3500/wpad.pac
Gerenciado pelo apache com 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>
E em ports.conf :
Listen 3500
E regras de firewall:
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
E funciona bem com Chrome 69.0.3497.100, IE v11.0.9600.19100 e Opera 55.0.2994.61, mas não com Mozilla Firefox 62.0.2 com a configuração padrão (não testei com Edge, mas não é relevante). No entanto, a Mozilla carrega bem a URL do wpad.pac, mas não há navegação (também não funciona nas versões anteriores).
O que há de errado com meu wpad.pac?
IMPORTANTE:
Não quero ter que especificar a URL do wpad.pac em cada Mozilla da minha rede local, pois são muitos computadores. Eu gostaria que você pegasse a configuração por padrão.
Nem os smartphones com android detectam meu wpad (não tentei com iphone)
Em alguns sites, eles dizem que você tem que desabilitar o IPv6 no Firefox ('about: config' network.dns.disableIPv6 para true). Já fiz isso e essa solução não funciona.
Eu usei esses arquivos wpad.pac alternativos e eles também não funcionam com o Firefox
alternativa1:
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";
}
alternativa3:
function FindProxyForURL(url, host) {return "PROXY 192.168.0.1:3128";}
desde já, obrigado
O problema foi resolvido ao atualizar para o Firefox Quantum 63x