Tenho um proxy Ubuntu 18.04, com squid 3128 e apache2, e publico o arquivo de configuração automática proxy.pac com a opção dhcp 252.
O arquivo tem o seguinte conteúdo:
function FindProxyForURL(url, host) {return "PROXY 192.168.0.10:3128";}
Existem aplicativos em alguns computadores da minha rede local que possuem esses URLs para acesso:
http://localhost:8080
http://192.168.0.12:8090/app/bar
O problema é que o squid tem restrições nesse tipo de requisição
Como posso configurar o proxy.pac para excluir solicitações para endereços locais? (exemplo: 192.168.0.0/24 ou localhost:port)
Importante observar que uma solução temporária é colocar manualmente o ip:port do proxy nos navegadores (no Windows: Painel de Controle/Opções da Internet), e marcar a caixa "não usar servidor proxy para endereços locais", mas depois proxy.pac não faria sentido.
Altere a função para isso:
Isso primeiro verifica se a parte do host é um número IPv4. Em caso afirmativo, isso é usado diretamente como o IP.
Caso contrário, a parte do host é resolvida para um endereço IP e o resultado é usado.
Em seguida, ele compara o endereço IP com a sub-rede especificada; se corresponder, o navegador é instruído a acessar diretamente o host.
Se o nome do host for "localhost", o navegador também será instruído a acessar diretamente o host (embora eu me pergunte se os navegadores usarão essa função para "localhost").
Finalmente, o padrão é usar o proxy.