Как изменить настройки прокси-сервера в зависимости от сети, к которой я подключаюсь?

Корпоративная сеть моей компании требует, чтобы я настроил сетевой прокси-сервер для доступа к сети, но когда я где-то еще, мне это не нужно. Настройки прокси в Ubuntu (Система -> Настройки -> Прокси-сервер) позволили мне создать «места», которые я могу выбрать вручную. Затем у меня есть местоположение «по умолчанию» (без прокси) и «рабочее» местоположение (с прокси моей компании в нем).

Есть ли способ заставить Ubuntu автоматически выбирать местоположение «работы» на основе используемого мной соединения? Я думал, что смогу использовать IP-подсеть (очень специфическую), чтобы определить, где я нахожусь, но я не знаю, как ее настроить ...

Редактировать: мне действительно нужно установить настройки прокси на системном уровне. Все мои сетевые подключения (IMAP, SMTP, чат и т. Д.) Должны проходить через прокси. Не только веб-браузер.

20
задан 6 January 2011 в 21:24

7 ответов

В дополнение к ответу Zoredache, вы можете использовать скрипт в /etc/network/if-up.d для генерации фрагмента в /etc/profile.d/, содержащего переменные вашей прокси-оболочки. Обратите внимание, что это будет работать только с новыми оболочками.

Кроме того, этот метод может использоваться для генерации WPAD-файла, на который можно указать любые браузеры, поддерживающие это.

0
ответ дан 6 January 2011 в 21:24

В Ubuntu 10.10 хорошо работает скрипт .pac. Как пояснил Zoredache, настройте веб-сервер, поместите туда pac-файл, откройте System-> Preferences-> Network Proxy и установите «URL-адрес автоконфигурации» для расположения pac-файла.

Пример PAC-файла, который проверяет собственный IP-адрес: /var/www/selectProxy.pac:

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

В настройках сетевого прокси: URL-адрес будет:

http://localhost/selectProxy.pac
0
ответ дан 6 January 2011 в 21:24

Это довольно старый пост, но я нашел это. Посмотрите: http://marin.jb.free.fr/proxydriver/

Вы можете установить пакет .deb, предоставленный для Ubuntu. Это в основном сценарий оболочки, который изменяет переменные среды при изменении вашей сети. Вы можете настроить параметры для каждой сети, отредактировав файлы конфигурации (автоматически), созданные в /etc/proxydriver.d/

0
ответ дан 6 January 2011 в 21:24

Я могу придумать один способ, но его настройка будет немного неясной.

Обычно вы можете использовать файл PAC

Установить веб-сервер в вашей системе, подойдет любой крошечный веб-сервер, вам не нужна огромная система, такая как apache. ]

Создайте файл wpad.dat с директивами PAC, которые соответствуют основному адресу вашего источника, а затем настройте вашу систему на использование правильного прокси.

В Firefox настройте прокси-сервер так, чтобы он указывал на локальный файл PAC. Вероятно, это будет что-то вроде http://localhost/wpad.dat.

Ваш PAC-файл может выглядеть примерно так ( не проверено ). См. Здесь больше примеров PAC .

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

Я никогда не пробовал, и у меня нет системы для тестирования, но вы можете даже указать файл PAC, используя URL-адрес file:// в firefox, что может означать, что вы можете пропустить настройку веб-сервер.

Конечно, есть и быстрое и простое решение, но оно требует небольших усилий с вашей стороны, когда вы перемещаетесь между локациями. Установите расширение Quick Proxy Firefox и просто нажмите кнопку на панели инструментов, чтобы включить или отключить прокси. Если вы хотите справиться с этим с расширением Firefox, вы также можете попробовать FoxyProxy , он поддерживает настройку нескольких профилей прокси и вы можете легко переключаться между профилями.

0
ответ дан 6 January 2011 в 21:24

Я использую файловый подход PAC, и он хорошо работает для просмотра, но не так хорошо для многих других приложений, которые не понимают файлы PAC - я предполагаю, что когда приложение запрашивает «прокси-конфигурацию» через API, они просто верните URL-адрес файла PAC, если вы его используете.

Для пользовательских приложений, которые либо не поддерживают прокси, либо не понимают файлы PAC (например, Empathy), я использую tsocks (потому что я использую туннель SSH для поддержки прокси).

Связывание механизма JavaScript или анализатора PAC с каждым приложением, которое поддерживает базовую настройку прокси-сервера, выглядит излишним. Похоже, что в этом случае может быть полезна поддержка некоторой базовой платформы с помощью вызова API, который фактически интерпретирует файл PAC и возвращает результат, а не его URL.

0
ответ дан 6 January 2011 в 21:24

У меня та же проблема. Пожалуйста, обобщите любые ответы, чтобы включить мою ситуацию.

Я использую свой ноутбук дома по беспроводной сети: - всегда статический IP-адрес интерфейса eth1 (192.168.1.10)

Когда я иду на работу, я подключаю его: - всегда интерфейс eth0 динамический IP-адрес (10.10.xx.xx) И прокси-сервер: 10.10.123.123 порт 8888

Я хочу, чтобы Ubuntu автоматически устанавливал IP-адрес и прокси-сервер в зависимости от используемого интерфейса.

(Я запутался в / etc / network / interfaces [см. «Man interfaces» и /etc/resolv.conf безрезультатно.

0
ответ дан 6 January 2011 в 21:24

Это старый пост на данный момент, но я пришел сюда в поисках способа сделать это и нашел другой ответ. Ответ, с которым я работаю, лежит в пакете с названием «whereami» и требует, чтобы вы определили подсеть вашей работы в ее файле detect.conf, а затем задали прокси-сервер в файле whereami.conf. Должен работать, и я буду публиковать с любыми проблемами.

Удачи!

0
ответ дан 6 January 2011 в 21:24

Другие вопросы по тегам:

Похожие вопросы: