Добавить прокси на конкретный хост только в Mac

10

Я хочу применить настройки прокси-сервера только к определенному хосту (например, www.apple.com) в Mac OS X. Как я могу это сделать?

В Системных настройках есть только опции для обхода настроек прокси для определенных хостов.

tusharmath
источник

Ответы:

17

Вы можете использовать следующий proxy.pacфайл для отправки всего трафика на apple.com через прокси 1.2.3.4, при этом отправляя его напрямую на все остальные узлы:

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. Сохраните этот скрипт как proxy.pac(или любое другое имя) на веб-сервере. Это может быть локальный веб-сервер ( http: //localhost/proxy.pac ). Это требуется с OSX Lion .
  2. Перейти к System Preferences.
  3. Выберите Network.
  4. Выберите сеть, которую вы хотите изменить (например, «WiFi»).
  5. Нажмите Advanced...кнопку.
  6. Нажмите Proxiesвкладку
  7. Проверьте [x] Automatic Proxy-Configuration.
  8. В URL:поле введите в URL на файл , который вы создали в шаге 1., например: http://localhost/proxy.pac. (примечание: локальные пути не будут работать в современном OSX)
  9. Нажмите SaveиApply

Вуаля! Ваша собственная прокси-конфигурация

Для получения дополнительной информации о формате proxy.pacфайла посмотрите http://en.wikipedia.org/wiki/Proxy_Auto-Config в качестве отправной точки.

heiglandreas
источник
8

На самом деле вы можете использовать file:///path/to/fileсхему для URL, вместо того чтобы полагаться на веб-сервер.

Например:

file:///Users/youruser/var/proxy/proxy.pac
jnbek
источник
1
Интересно, что все это работает и для Linux / BSD, и, возможно, даже для Windows; везде, где используется автоматическая конфигурация прокси , это может сработать.
jnbek
Вероятно, это должен быть принятый ответ, поскольку он позволяет избежать чрезмерного усложнения используемого стека и, как упоминалось в предыдущем комментарии, является гораздо более универсальным решением.
user239546
Если вы используете file: ///...pac, то в некоторых приложениях у вас могут возникнуть проблемы (например, приложения Microsoft, такие как команды и другие, см. Support.microsoft.com/en-us/help/4042151/… ), поэтому Лучший способ - разместить его на локальном хосте или на любом публичном сервере в Интернете.
Палий
1
Это НЕ работает на OSX.
jpgeek
@jpgeek работает на 10.15 для меня. Если вы не уверены, вернитесь 'PROXY ...'без проверки домена для подтверждения. proxy.pacперечитывается при переключении Wi-Fi.
seeker_of_bacon
2

Добавление к ответу @ heiglandreas ...

Решение @ jnbek не работало на Mac OSX для меня, и я искал простое решение.

Итак, я создал новую папку и скопировал туда файл pac. Затем я запустил простой веб-сервер на OSX через порт 80 из этой папки.

Просто зайдите в папку и выполните эту команду. Пожалуйста, измените порт с 80 на что-то другое, если он уже занят.

python -m SimpleHTTPServer 80

Теперь я легко могу получить файл proxy.pac http://localhost/proxy.pac. Или, для различного использования порта: http://localhost:PORT/proxy.pac.

Рехмат
источник