Корпоративная сеть моей компании требует, чтобы я настроил сетевой прокси-сервер для доступа к сети, но когда я где-то еще, мне это не нужно. Настройки прокси в Ubuntu (Система -> Настройки -> Прокси-сервер) позволили мне создать «места», которые я могу выбрать вручную. Затем у меня есть местоположение «по умолчанию» (без прокси) и «рабочее» местоположение (с прокси моей компании в нем).
Есть ли способ заставить Ubuntu автоматически выбирать местоположение «работы» на основе используемого мной соединения? Я думал, что смогу использовать IP-подсеть (очень специфическую), чтобы определить, где я нахожусь, но я не знаю, как ее настроить ...
Редактировать: мне действительно нужно установить настройки прокси на системном уровне. Все мои сетевые подключения (IMAP, SMTP, чат и т. Д.) Должны проходить через прокси. Не только веб-браузер.
В дополнение к ответу Zoredache, вы можете использовать скрипт в /etc/network/if-up.d для генерации фрагмента в /etc/profile.d/, содержащего переменные вашей прокси-оболочки. Обратите внимание, что это будет работать только с новыми оболочками.
Кроме того, этот метод может использоваться для генерации WPAD-файла, на который можно указать любые браузеры, поддерживающие это.
В 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
Это довольно старый пост, но я нашел это. Посмотрите: http://marin.jb.free.fr/proxydriver/
Вы можете установить пакет .deb, предоставленный для Ubuntu. Это в основном сценарий оболочки, который изменяет переменные среды при изменении вашей сети. Вы можете настроить параметры для каждой сети, отредактировав файлы конфигурации (автоматически), созданные в /etc/proxydriver.d/
Я могу придумать один способ, но его настройка будет немного неясной.
Обычно вы можете использовать файл 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 , он поддерживает настройку нескольких профилей прокси и вы можете легко переключаться между профилями.
Я использую файловый подход PAC, и он хорошо работает для просмотра, но не так хорошо для многих других приложений, которые не понимают файлы PAC - я предполагаю, что когда приложение запрашивает «прокси-конфигурацию» через API, они просто верните URL-адрес файла PAC, если вы его используете.
Для пользовательских приложений, которые либо не поддерживают прокси, либо не понимают файлы PAC (например, Empathy), я использую tsocks (потому что я использую туннель SSH для поддержки прокси).
Связывание механизма JavaScript или анализатора PAC с каждым приложением, которое поддерживает базовую настройку прокси-сервера, выглядит излишним. Похоже, что в этом случае может быть полезна поддержка некоторой базовой платформы с помощью вызова API, который фактически интерпретирует файл PAC и возвращает результат, а не его URL.
У меня та же проблема. Пожалуйста, обобщите любые ответы, чтобы включить мою ситуацию.
Я использую свой ноутбук дома по беспроводной сети: - всегда статический 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 безрезультатно.
Это старый пост на данный момент, но я пришел сюда в поисках способа сделать это и нашел другой ответ. Ответ, с которым я работаю, лежит в пакете с названием «whereami» и требует, чтобы вы определили подсеть вашей работы в ее файле detect.conf, а затем задали прокси-сервер в файле whereami.conf. Должен работать, и я буду публиковать с любыми проблемами.
Удачи!