1

У меня проблема с wget и я обнаружил, что мои настройки прокси неверны:

$ env | grep "proxy"
http_proxy=http://213.181.73.145:80
https_proxy=http://213.181.73.145:80

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

Но в режиме суперпользователя все правильно:

$ sudo su
$ env | grep "proxy"
$

(пустой вывод, без прокси)

Я хочу знать, где эти переменные настройки, и я обнаружил много проблем. Я добавил следующую строку в начало моего /etc/profile:

env | grep "proxy"
echo "Hello"

И для меня удивление, обе переменные являются настройками с одинаковыми значениями перед загрузкой любого файла конфигурации (/etc/bashrc, ~/.bashrc и т.д.):

(new terminal)
http_proxy=http://213.181.73.145:80
https_proxy=http://213.181.73.145:80
Hello
$

Более того, я работаю с guake . Итак, я попробовал то же самое с обычным терминалом, и для меня, к моему удивлению, файл /etc/profile не загружен, так как я не вижу ни строки прокси, но и echo "Hello" .

Итак, я хотел бы знать, как возможно, что http_proxy и https_proxy определяются до загрузки /etc/profile и почему я не вижу сообщения "Hello" при открытии общего терминала.

2 ответа2

0

Сообщение не отображается, когда вы открываете "обычный" терминал, потому что /etc/profile читается только для оболочек входа в систему, "обычный" терминал запускает интерактивную оболочку, не входящую в систему. Смотрите мой ответ здесь для получения дополнительной информации.

Теперь я не знаю, где установлен ваш http_proxy . В зависимости от того, что именно ваша установка, это может быть в разных местах. Попробуй это:

grep http_proxy /etc/bash.bashrc /etc/profile ~/.bashrc ~/.bash_login ~/.profile ~/bash_profile

Переменная должна быть установлена в одном из этих файлов.

0

Некоторые файлы, запускаемые при запуске оболочки, устанавливают переменные среды, такие как ~/.bashrc, ~/.bash_profile или /etc/bash.bashrc.

Вам не нужно менять какой-либо файл, чтобы снять переменную прокси! Все, что вам нужно сделать, это использовать команду «unset»!

$ unset http_proxy
$ unset https_proxy

Теперь эти переменные среды исчезли! Если вы не можете отследить, где они установлены, вы можете добавить это в конец вашего ~/.bashrc и сбросить их для каждой оболочки. Если вы проверите это снова:

$ env | grep proxy
[nothing]

Вы увидите, что они ушли!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .