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

16

Я пытаюсь настроить сетевой прокси-сервер на использование интернет-соединения моей локальной сети для обновления пакетов. хотя настройки прокси-сервера работают на моем firefox , но менеджер пакетов по-прежнему не может подключиться к Интернету. Я установил прокси-сервер System >> Preferences >> Network Proxyи ввел пользователя / пароль для прокси в «Сведениях».

Как я могу убедиться, что Proxy Network применяется правильно?

Alexar
источник

Ответы:

12

Прежде всего, убедитесь, что вы нажимаете «Применить для всей системы ...» каждый раз, когда вы меняете настройки прокси в gnome-network-properties ( System -> Preferences -> Network Proxy). Это устанавливает http_proxy и связанные переменные окружения. Это должно быть доступно для всех программ, запущенных после того, как для прокси-сервера задано «Применимо для всей системы ...». Чтобы быть действительно уверенным, вы можете выйти и снова войти, чтобы проверить это.

Если вы откроете терминал и воспользуетесь командой, set | grep -i proxyвы увидите набор соответствующих переменных среды. В идеале этого должно быть достаточно.

Однако я сталкивался с ситуациями, когда все вышеперечисленное по-прежнему не работает: Synaptic или apt-get(через командную строку) не могут подключиться к Интернету через прокси-сервер, даже если он установлен вышеуказанным способом. В таких случаях одним из решений является добавление файла /etc/apt/apt.conf.dс определенной конфигурацией прокси для apt (это будет использоваться программным центром apt-get, aptitude, synaptic и Ubuntu).

Выполните следующие шаги:

  1. Создайте /etc/apt/apt.conf.d/40proxy

    gksudo gedit /etc/apt/apt.conf.d/40proxy

  2. Вставьте в него следующее содержимое - измените содержимое в соответствии с вашей ситуацией.

    Acquire::http::Proxy "http://proxy.site.com:8080";

Если у вас есть имя пользователя и пароль, вы можете закодировать их в URL- адресе прокси-сервера (например, http://username:password@proxy.site.com:8080) или использовать что-то вроде ntlmaps для лучшего контроля.

Более подробную информацию можно найти здесь .

Koushik
источник
1
Благодарность! сначала для представления set. тогда, как вы и предполагали, проблемы с apt-get и менеджером обновлений все еще были ... и их создание 40proxyрешено. единственная оставшаяся проблема - только root видит прокси. Например, wget whatismyip.comимеет разные выходы с обычным пользователем и root.
Алексар
Можете ли вы описать оставшуюся проблему? Например, если вы установили прокси-сервер с помощью, System -> Preferences -> Network Proxyа Apply System-wide...затем говорите, что команды, запускаемые от имени пользователя root, не видят этот параметр? (Значение sudo wget whatismyip.comне возвращает IP-адрес прокси-сервера?)
koushik
С другой стороны, убедитесь, что вы сделали резервную копию этого файла 40proxy (скажем, где-то в вашей домашней папке), у меня это загадочно исчезало. Я думаю, что выбор Direct connection to Internetв Network Proxyдиалоге, вероятно, стирает это. Это может быть проблема с моей системой, но не уверен.
Кошик
5

Вы нажали кнопку Apply System Wide (выделено)? Если вы не настроите прокси-сервер локально для вашего сеанса Gnome и, следовательно, когда он rootуходит на загрузку пакетов, он не будет использовать те же настройки сети.

Настройки прокси

Оли
источник
да, я сделал это
Алексар
5

Выше приведена куча хороших ответов, которые помогут вам, если у вас возникли проблемы (что и подразумевает ваш вопрос). Однако, это ответ на узкий вопрос проверки, были ли применены настройки сетевого прокси:

Метод 1: Запустите новую оболочку (xterm), затем проверьте переменные среды:

% env | grep -i proxy
http_proxy=http://172.17.0.130:8080/
ftp_proxy=ftp://172.17.0.130:8080/
all_proxy=socks://172.17.0.130:8080/
...

Обратите внимание, что существующие оболочки не будут иметь обновленных переменных среды. Поэтому, если вы выполняете команду, которая просматривает переменные окружения на предмет настроек прокси, запустите ее в оболочке, созданной после изменений настроек прокси.

Способ 2: Используйте gconftoolдля запроса настроек gconf (которые хранятся в ~/.gconf):

% gconftool -R /system/proxy 
 old_ftp_port = 0
 old_ftp_host = 
 old_secure_port = 0
 old_secure_host = 
 autoconfig_url = 
 mode = manual
 ftp_host = 172.17.0.130
 secure_host = 172.17.0.130
 ...

% gconftool -R /system/http_proxy 
 use_authentication = false
 authentication_password = 
 authentication_user = 
 ignore_hosts = [localhost,127.0.0.0/8,*.local,...]
 use_http_proxy = true
 port = 8080
 use_same_proxy = true
 host = 172.17.0.130

Как уже отмечали другие, убедитесь, что ваш браузер и другие приложения настроены на «Использовать настройки прокси-сервера системы».

craigster
источник
1

Чтобы временно установить прокси, вы можете запустить терминал и ввести

export http_proxy="http://yourproxy:yourport"

Затем запустите программу, например Synaptic для управления пакетами. Консоль может дать вам полезный вывод о том, что идет не так.

фита
источник
1
Чтобы установить переменную среды только для одной команды, вы также можете использовать:http_proxy="http://yourproxy:yourport" synaptic
hultqvist
1

Если вы пытаетесь:

curl http://www.google.com

из командной строки, если вы вернете HTML обратно, прокси работает.

bnieland
источник
0

Я также использую прокси-сервер, и мне пришлось установить параметры прокси-сервера специально для Synergy и диспетчера обновлений (используя Synergy: Конфигурация-> Предпочтения-> Сеть). Там нет никакой возможности использовать «настройки системы», и даже если это должно работать, изменение прокси-сервера на системном уровне никогда не позволяло мне обновляться :-(

Я заинтересован в решении, которое заставит это работать хотя :-)

Маленькая Джава
источник
0

Нажмите «Применить для всей системы ...» и убедитесь, что все ваши интернет-приложения настроены на использование системного прокси. Там нет ничего более, чем это. Нет необходимости вмешиваться в файлы конфигурации и сценарии запуска.

Раду Котеску
источник
0

кто-нибудь думал проверить / добавить настройки в:

/ И т.д. / окружающая среда

попробуйте это с:

http_proxy = "http: // пользователь: пароль @ proxyserver: порт" https_proxy = "http: // пользователь: пароль @ proxyserver: порт" ftp_proxy = "http: // пользователь: пароль @ proxyserver: порт"

t0m5k1
источник
-1

Применение всей системы недостаточно! Я думаю, может быть, ISA Server или, возможно, соединение синаптического сброса для каждого запроса к Интернету - это проблема, связанная с аутентификацией по логину и паролю. Или, может быть, ISA Server не принимает передачи, которые не отвечают по протоколу HTTP, но это не мой любимый.

DarkTemplar
источник