Dodaj serwer proxy do określonego hosta tylko w systemie Mac

10

Chcę zastosować ustawienia proxy tylko do określonego hosta (np. Www.apple.com) w Mac OS X. Jak to zrobić?

W Preferencjach systemowych są tylko opcje pomijania ustawień proxy dla poszczególnych hostów.

Tusharmath
źródło

Odpowiedzi:

17

Możesz użyć następującego proxy.pacpliku, aby wysłać cały ruch do apple.com przez serwer proxy 1.2.3.4, jednocześnie przechodząc bezpośrednio do wszystkich innych hostów:

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. Zapisz ten skrypt jako proxy.pac(lub dowolną inną nazwę) na serwerze WWW. Może to być lokalny serwer WWW ( http: //localhost/proxy.pac ). Jest to wymagane od OSX Lion .
  2. Idź do System Preferences.
  3. Wybierz Network.
  4. Wybierz sieć, którą chcesz zmienić (np. „WiFi”).
  5. Kliknij Advanced...przycisk
  6. Kliknij Proxieszakładkę
  7. Sprawdzić [x] Automatic Proxy-Configuration.
  8. W URL:polu wpisz adres URL do utworzonej w kroku 1. pliku, na przykład: http://localhost/proxy.pac. (uwaga: ścieżki lokalne nie będą działać w nowoczesnym OSX)
  9. Kliknij SaveiApply

Voila! Twoja własna konfiguracja proxy

Więcej informacji na temat formatu proxy.pacpliku można znaleźć na stronie http://en.wikipedia.org/wiki/Proxy_Auto-Config jako punkt początkowy.

heiglandreas
źródło
8

W rzeczywistości możesz użyć file:///path/to/fileschematu dla adresu URL, zamiast polegać na serwerze internetowym.

Na przykład:

file:///Users/youruser/var/proxy/proxy.pac
jnbek
źródło
1
Co ciekawe, wszystko to działa również w systemie Linux / BSD, a być może nawet w systemie Windows; wszędzie tam, gdzie używana jest Automatyczna konfiguracja proxy , prawdopodobnie zadziała.
jnbek
To prawdopodobnie powinna być zaakceptowana odpowiedź, ponieważ pozwala uniknąć nadmiernej komplikacji stosu i jak wspomina poprzedni komentarz - jest znacznie bardziej uniwersalnym rozwiązaniem.
user239546,
Jeśli używasz pliku: ///...pac, w niektórych aplikacjach możesz mieć problemy (np. Aplikacje Microsoft, takie jak Teams i inne, patrz support.microsoft.com/en-us/help/4042151/... ), więc najlepszym sposobem jest umieszczenie go na localhost lub dowolnym serwerze publicznym w Internecie.
paly
1
To NIE działa w OSX.
jpgeek,
@ jpgeek działa dla mnie na 10.15. Jeśli nie masz pewności, wróć 'PROXY ...'bez sprawdzania domeny do weryfikacji. proxy.paczostanie ponownie przeczytany po przełączeniu Wi-Fi.
seeker_of_bacon
2

Dodanie do odpowiedzi @ heiglandreas ...

Rozwiązanie @ jnbek dla mnie nie działało na Mac OSX i szukałem prostego rozwiązania.

Tak więc utworzyłem nowy folder i skopiowałem do niego plik pac. Następnie uruchomiłem prosty serwer WWW na OSX na porcie 80 z tego samego folderu.

Wystarczy wejść do folderu i uruchomić to polecenie. Zmień port z 80 na inny, jeśli jest już zajęty.

python -m SimpleHTTPServer 80

Teraz mogę łatwo pobrać plik proxy.pac http://localhost/proxy.pac. Lub, w przypadku innego zastosowania portu: http://localhost:PORT/proxy.pac.

Rehmat
źródło