Почему wget выдает ошибку при запуске с sudo, но работает нормально без него?

Почему wget выдает ошибку при запуске с sudo, но работает нормально без него?

Я попробовал следующую команду:

$ wget -q --tries=10 --timeout=20 --spider http://google.com

(Отэтот пост ТАК. Я хочу проверить свое интернет-соединение в bash.)

Я получаю следующий вывод:

Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50--  http://google.com/
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA [following]
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50--  http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

Вроде бы все нормально, однако при запуске cmd с помощью sudoя получаю следующее:

Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:27--  http://google.com/
Resolving google.com (google.com)... failed: Name or service not known.
wget: unable to resolve host address ‘google.com’

Мне нужна эта строка в скрипте, который я вызываю, sudoи поэтому он всегда дает сбой.

Может кто-нибудь сказать мне причину этого? Как это обойти?

решение1

У вас в среде определен прокси. Похоже, что ваш — 127.0.0.1:3128.

При запуске sudoпеременная среды proxy не передается, поэтому вы не можете напрямую разрешить google.com.

Вы можете увидеть, какие прокси-серверы вы определили в переменных среды, с помощью этой команды:

env | grep proxy

Дополнительная информация на Ask Ubuntu

Примечание:Если вы хотите sudoпередать переменную среды HTTP-прокси, попробуйте сделать следующее:

sudo http_proxy="$http_proxy" wget -q --tries=10 --timeout=20 --spider http://google.com

Вы также можете передать все переменные окружения, используя sudo -E:

sudo -E wget -q --tries=10 --timeout=20 --spider http://google.com

На Stack Overflow есть и другие варианты сохранения переменной среды при sudoзапуске.

Связанный контент