exclui endereços locais no wpad

1

Eu tenho um proxy Ubuntu 18.04, com o squid 3128 e o 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 neste 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 notar 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 selecionar a caixa "não usar servidor proxy para endereços locais", mas o proxy.pac não faria sentido.

    
por ajcg 25.09.2018 / 01:14

1 resposta

1

Altere a função para isso:

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.10:3128";
}

Primeiro, verifica se a parte do host é um número IPv4. Em caso afirmativo, isso é usado diretamente como o IP.

Se não, a parte do host é resolvida para um endereço IP e o resultado é usado.

Em seguida, ele corresponde ao endereço IP em relação à sub-rede especificada; se isso corresponder, o navegador é instruído a acessar diretamente o host.

Se o nome do host for "localhost", o navegador também é 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.

    
por 25.09.2018 / 11:44