sudo로 실행하면 wget에서 오류가 발생하지만 sudo 없이는 잘 작동하는 이유는 무엇입니까?

sudo로 실행하면 wget에서 오류가 발생하지만 sudo 없이는 잘 작동하는 이유는 무엇입니까?

다음 명령을 시도했습니다.

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

(에서이 SO 게시물. 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프록시 환경 변수가 전달되지 않으므로 를 직접 확인할 수 없습니다 google.com.

다음 명령을 사용하여 환경 변수에 정의한 프록시/프록시를 확인할 수 있습니다.

env | grep proxy

Ask Ubuntu에 대한 추가 정보

메모:sudoHTTP 프록시 환경 변수를 전달 하려면 다음을 시도하십시오.

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

스택 오버플로에는 ing 시 환경 변수를 유지하기 위한 다른 옵션이 있습니다 sudo.

관련 정보