Não é possível obter o arquivo proxy.pac para fazer com que os navegadores acessem DIRECT para localhost

3

Eu vou lançar esse problema na natureza.

Acabamos de começar a usar um proxy para registrar o uso da Internet dos usuários em relação aos nomes de login. Isso é configurado no ISA Server 2004 (que está no nosso servidor de gateway da Internet). Formas integradas e básicas de autenticação são habilitadas junto com a reutilização de todos os usuários para autenticação. Eu marquei e habilitei uma matriz de configurações no ISA para que ele ignore endereços e domínios internos.

Para apontar nossos usuários para nosso servidor proxy, usei um Detect com DHCPINFORM em nosso servidor DHCP para apontar clientes no local de rede do arquivo proxy.pac ( Descrito aqui ). Eu também configurei o wpad.dat na mesma área que o proxy.pac (ambos os arquivos são idênticos).

Arquivo proxy.pac atual Eu estou brincando com:

function FindProxyForURL(url, host)
{       
// Trying to save localhost
   if (localHostOrDomainIs(host, "localhost")) return "DIRECT";
   if shExpMatch (url, "http://localhost*") return "DIRECT";
// If specific URL needs to bypass proxy, send traffic direct.
var resolved_ip = dnsResolve(host);
if (isInNet(resolved_ip, "172.22.145.0",  "255.255.255.0") ||
    isInNet(resolved_ip, "192.168.1.0", "255.255.255.0") ||
    isInNet(resolved_ip, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
return "PROXY ^gatewaynamehere^.baytech.local:8080; DIRECT";
}

(Nosso IP interno é o intervalo 172.22.145. *

Agora, os problemas que estou tendo é que o arquivo proxy.pac faz o navegador ir para o proxy sempre que localhost ou 127.0.0.1 é solicitado. Eu posso ver as solicitações no ISA Server quando monitore meu endereço IP. Eu posso solicitar outros servidores em nossa Intranet e ele não toca no proxy (que está correto). Mas eu suspeito que isso por causa das configurações no ISA Server e não por causa do arquivo proxy.pac (eu poderia estar errado).

Uma questão secundária é que precisamos apontar o Firefox para o arquivo proxy.pac manualmente para que ele funcione no Firefox. Também uma minoria de usuários do IE também precisa ser apontada manualmente também. A melhor coisa a ter é configurar nossos navegadores para detecção automática (IE e FF) e fazer tudo funcionar, não importa onde o usuário esteja.

Defini-la manualmente por meio da política de grupo ou das configurações do navegador não é o ideal, pois causa problemas para pessoas que têm laptops que são levados para casa.

Eu também tentei desativar o cache de proxy do IE conforme descrito aqui: link

Alguns sites de informações de proxy que eu consultei:

Obrigado antecipadamente.

    
por Qwerty 18.06.2009 / 08:00

4 respostas

1

Ok, acho que estou correndo agora ...

Meu problema real foi que nunca foi executado em primeiro lugar. Além disso, se o arquivo proxy.pac tiver um erro, ele decide morrer silenciosamente. Então voltei ao básico e tentei executar um localmente em minha máquina usando um arquivo proxy.pac realmente simples. (Recebi um choque quando meus alertas começaram a aparecer pela primeira vez).

Uma vez que eu trabalhei isso eu construí linha a linha até que eu tivesse algo que funcionasse na minha rede.

Também algumas informações mais importantes para todos os futuros leitores deste tópico!

Em seguida, movi-o de volta para o servidor no qual eu o tinha originalmente instalado e, em seguida, encontrei problemas com a detecção automática para FF e IE. Depois de um pouco de pesquisa, parece que o IE7 e o IE8 lidam com arquivos pac de maneira diferente quando a detecção automática está ativada. (O método de captura de proxy que estou usando é DHCP). Então, o IE8 parece exigir um ipconfig / renew para adquirir um novo, enquanto o IE7 requer um ipconfig / renew e um ipconfig / flushdns

Além disso, o Firefox relatou apenas os alertas que eu tinha no console Error (Ctrl + Shift + J), enquanto o IE usava um pop-up para alertas.

Após alguns dias, a opção DHCP 252 se espalhou para todas as estações de trabalho. No entanto FF parece ainda ter dificuldades com a detecção automática, então eu só uso o ponto manual ou o add-on FoxyProxy como um trabalho ao redor.

Obrigado pela contribuição de todos!

    
por 08.07.2009 / 04:00
1

Eu não tentei, mas de acordo com o docco da sun.com, a função IsInNet recebe um host, não um IP como o primeiro parâmetro.

então eu acho que isso:

if (isInNet(resolved_ip, "172.22.145.0",  "255.255.255.0") ||
        isInNet(resolved_ip, "192.168.1.0", "255.255.255.0") ||
        isInNet(resolved_ip, "127.0.0.1", "255.255.255.255"))
return "DIRECT";

deve ser alterado para isto:

if (isInNet(host, "172.22.145.0",  "255.255.255.0") ||
        isInNet(host, "192.168.1.0", "255.255.255.0") ||
        isInNet(host, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
    
por 18.06.2009 / 08:29
1

Dica: para depurar arquivos pac no firefox você pode usar alert("blah") para depurar mensagens e então procurar no Console de erros (menu Ferramentas) onde elas serão impressas.

    
por 18.06.2009 / 11:45
0

Os navegadores baseados no Mozilla permitem que você use um arquivo: URL, o que torna muito mais fácil criar um protótipo e testar seu arquivo .pac.

Eu não tentei isso no IE.

    
por 18.07.2009 / 17:17