Adicionar um proxy a um host específico apenas no mac

10

Quero aplicar configurações de proxy apenas a um host específico (por exemplo, www.apple.com) no Mac OS X. Como posso fazer isso?

Nas Preferências do Sistema, existem apenas opções para ignorar as configurações de proxy para hosts específicos.

Tusharmath
fonte

Respostas:

17

Você pode usar o seguinte proxy.pacarquivo para enviar todo o tráfego para apple.com por meio do proxy 1.2.3.4 enquanto continua indo diretamente para todos os outros hosts:

function FindProxyForURL(url, host) {
    PROXY = "PROXY 1.2.3.4"

    // Apple.com via proxy
    if (shExpMatch(host,"*.apple.com")) {
        return PROXY;
    }
    // Everything else directly!
    return "DIRECT";
}
  1. Salve esse script como proxy.pac(ou qualquer outro nome que você quiser) em um servidor web. Pode ser um servidor da web local ( http: //localhost/proxy.pac ). Isso é necessário a partir do OSX Lion .
  2. Vá para o System Preferences.
  3. Selecione Network.
  4. Selecione a rede que você deseja alterar (por exemplo, "WiFi").
  5. Clique no Advanced...botão
  6. Clique na Proxiesguia
  7. Verifique [x] Automatic Proxy-Configuration.
  8. No URL:campo, digite a URL para o arquivo que você criou na etapa 1. Por exemplo: http://localhost/proxy.pac. (nota: caminhos locais não funcionarão no OSX moderno)
  9. Clique SaveeApply

Voila! Sua própria configuração de proxy

Para mais informações sobre o formato do proxy.pacarquivo, consulte http://en.wikipedia.org/wiki/Proxy_Auto-Config como ponto de partida.

heiglandreas
fonte
8

Na verdade, você pode usar o file:///path/to/fileesquema para a URL, em vez de precisar confiar em um servidor da web.

Por exemplo:

file:///Users/youruser/var/proxy/proxy.pac
jnbek
fonte
11
Curiosamente, tudo isso funciona para Linux / BSD também, e possivelmente até para Windows; em qualquer lugar que a configuração automática de proxy for usada, é provável que funcione.
Jnbek
Essa provavelmente deve ser a resposta aceita, pois evita a complicação excessiva da pilha em uso e como o comentário anterior menciona - é uma solução muito mais universal.
user239546
Se você usar o arquivo: ///...pac, em alguns aplicativos poderá ter problemas (por exemplo, aplicativos da Microsoft, como Teams e outros, consulte support.microsoft.com/en-us/help/4042151/… ); A melhor maneira é colocá-lo no host local ou em qualquer servidor público na Internet.
paly
11
Isso NÃO funciona no OSX.
jpgeek
@jpgeek funciona em 10.15 para mim. Se você não tiver certeza, retorne 'PROXY ...'sem verificar o domínio a ser verificado. proxy.pacé relido quando você alterna o wifi.
seeker_of_bacon 24/03
2

Adicionando à resposta de @ heiglandreas ...

A solução da @ jnbek não funcionou no Mac OSX para mim e eu estava procurando uma solução simples.

Então, criei uma nova pasta e copiei o arquivo pac nela. Em seguida, iniciei um servidor Web simples no OSX na porta 80 a partir dessa pasta.

Basta ir para a pasta e executar este comando. Altere a porta de 80 para outra se ela já estiver ocupada.

python -m SimpleHTTPServer 80

Agora, eu poderia facilmente obter o arquivo proxy.pac http://localhost/proxy.pac. Ou, para uso porta diferente: http://localhost:PORT/proxy.pac.

Rehmat
fonte