apt.conf“Acquire :: http : Proxy”proxyserver : port”가 사용되지 않는 것 같습니다 (Win7의 Virtual Box에서 Ubuntu 13.04).


13

VirtualBox VM에 Ubuntu 13.04 Desktop을 설치하기위한 것입니다. xyz251 : 9090에서 HTTP 프록시를 사용하는 회사 네트워크에 있습니다. 자동 구성 스크립트를 사용하여 게스트 OS를 구성 했으므로 Firefox가 제대로 작동하지만 프록시를 사용하여 연결할 "apt-get"또는 "Ubuntu Software Center"를 얻을 수 없습니다.

"/etc/apt/apt.conf"파일을 만들었습니다. 이제 한 줄의 텍스트가 포함됩니다.

Acquire::http:Proxy "http://x.y.z.251:9090"

이것이 "System Settings / Network / Network Proxy"에서 지정하고 전체 시스템에 적용한 proxy.pac 파일입니다.

Firefox를 사용할 때 패킷 추적은 포트 9090에서 회사 프록시를 통해 TCP 연결이 완료되었음을 나타냅니다. "Ubuntu Software Center"및 "apt-get"을 실행하면 패킷 추적에 최종 대상 IP가있는 TCP SYN 패킷이 표시됩니다. 회사 방화벽은 포트 80의 TCP 연결이 들어 오거나 나가는 것을 차단하기 때문에 물론 SYN 패킷에 대한 응답이 없습니다.

터미널 창에서 "sudo apt-get"을 사용하면 항상 다음을 볼 수 있습니다.

Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en
Err http://extras.ubuntu.com raring Release.gpg 
  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out
Err http://archive.canonical.com raring Release.gpg 
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://us.archive.ubuntu.com raring Release.gpg 
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-updates Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-backports Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
59% [Connecting to security.ubuntu.com (91.189.91.14)]

결국, 나는 본다 :

Err http://security.ubuntu.com raring-security Release.gpg
  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]
Reading package lists... Done                          
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]

W: Failed to fetch http://archive.canonical.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/Release.gpg  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out

W: Some index files failed to download. They have been ignored, or old ones used instead.

나는 내가 뭘 잘못하고 있는지 전혀 확신하지 못한다.

--- 업데이트 ---- 나는 또한 시도했다 :

Acquire::http:proxy "http://user:pass@x.y.z.251:9090/"

"xyz"는 물론 자리 표시 자입니다. 내 고용주의 보안 담당자가 실제 숫자를 게시하는 것을 친절하게 보지 않을 것입니다. 패킷 추적에는 차이가 없습니다. "apt-get"은 여전히 ​​실제 IP 주소와 포트 80을 사용하고 있습니다. apt.conf 파일에서 의도적 인 실수를했으며 "apt-get"이 오류로 종료되었습니다. 프록시에 대한이 구성 줄을 볼 것이라고 확신하지만 그것을 존중하지 않는 것 같습니다.

"NAT"네트워킹 연결을 사용하고 있습니다. 여기서 IT 정책을 위반하여 네트워크를 연결하고 DHCP 서버는 알려진 MAC 주소에만 주소를 제공합니다. 나는 큐브에 IT 보안을 두드리고 싶지 않습니다.


매일 새로운 것을 배우십시오. "/etc/apt/apt.conf"는 "시스템 설정 / 네트워킹 / 네트워크 프록시"에서 수동 프록시 구성 옵션을 사용하는 경우에만 업데이트되는 것 같습니다. 그런 다음 해당 파일에서 작성한 항목을 수동으로 주석 처리하고 IPv6을 비활성화했습니다. GUI에 의해 생성 된 항목은 내가 처음 시작한 것과 거의 동일하지만 "apt-get"이 작동합니다. GUI를 통해 IPv6을 비활성화 할 수 있었으면 좋았지 만 "/etc/sysctl.conf"를 편집해도 문제가 없습니다. @ terry-wang에게 감사드립니다
Daniel Glasser

답변으로 추가해 주시겠습니까? 문제가 ipv6 프록시가 잘못 설정되지 않은 것입니다.
Braiam

:사이에 콜론이 더 빠졌을 수 있습니다 . 대신 . httpProxyhttp::Proxyhttp:Proxy
Gonmator

답변:


18

과거의 경험을 바탕으로 전반적인 Ubuntu (GNOME)는 PAC (Automatic Config)와 잘 작동하지 않습니다. Pac (Proxy Auto-config)는 기본적으로 가장 적합한 프록시를 결정하기위한 JavaScript 논리입니다 . 프록시 서버를 직접 사용하는 것이 좋습니다 (귀하의 경우 네트워크-네트워크 프록시).

몇 가지 확인해야 할 사항

/etc/apt/apt.conf를 확인하십시오

네트워크-네트워크 프록시 GUI가 /etc/apt/apt.conf프록시 정보를 업데이트 하고 설정합니다.

PAC에서 프록시 서버 정보 찾기

proxy.pac어쨌든 파일 을 읽어 세부 사항을 찾을 수 있습니다 .

따라서 /etc/apt/apt.conf아래와 같이 (프록시 서버가 => proxy.company.com 포트 80 인 경우) pac URL을 사용하지 마십시오.

Acquire::http::proxy "http://proxy.company.com:80/";
Acquire::https::proxy "https://proxy.company.com:80/";
Acquire::ftp::proxy "ftp://proxy.company.com:80/";

참고 : 프록시가 적절한 설정 파일에 지정되지 않은 경우, apt-get다시 떨어질 http_proxy환경 변수.

apt.conf 매뉴얼 페이지에서 @Braiam의 코멘트에 응답하십시오.

   http
       HTTP URIs; http::Proxy is the default http proxy to use. It is in
       the standard form of http://[[user][:pass]@]host[:port]/. Per host
       proxies can also be specified by using the form http::Proxy::<host>
       with the special keyword DIRECT meaning to use no proxies. If no
       one of the above settings is specified, http_proxy environment
       variable will be used.

프록시 환경 변수 확인

터미널에서 다음을 실행하여 프록시 설정을 확인할 수 있습니다

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

env 변수를 올바르게 설정하면 CLI에서 업데이트 할 수 있어야합니다.

IPv4 선호

나는 눈치 apt-get자신의 IPv6 주소를 사용하여 업데이트 서버에 연결을 시도했다. 이로 인해 문제가 발생할 수 있습니다 (IPV6 주소가 만료되거나 변경 될 수 있음).

ipv6보다 ipv4를 선호하도록 편집 /etc/gai.conf하고 추가 할 수 있습니다 precedence ::ffff:0:0/96 100.

자세한 내용은


답변 주셔서 감사합니다. "/etc/apt/apt.conf"에 입력 한 값은 .pac 파일 자체의 URI가 아닌 .pac 파일에서 오는 실제 URI 및 소켓입니다 ( "시스템 설정 / 네트워킹 / 네트워크 프록시 ".
Daniel Glasser

"시스템 설정 / 네트워킹 / 네트워크 프록시"로 가서 수동 구성을 사용했습니다. 이것은 "/etc/apt/apt.conf"를 업데이트했습니다. "/etc/sysctl.conf"를 편집하여 IPv4를 비활성화했습니다. 이것은 트릭을 한 것으로 보입니다. 당신의 도움을 주셔서 감사합니다.
Daniel Glasser

사실, apt-get은 http_proxy환경 변수를 사용 하지 않습니다.
Braiam

@Braiam은 man apt.conf을 참조하십시오 http::Proxy. 나는 또한 대답을 업데이트했다. 또한 내가 사용하고 한 http_proxyhttps_proxy함께 사용할 변수를 환경 apt-get년. 투표하기 전에 약간의 조사를하십시오.
Terry Wang

또한 스스로 조사하십시오! 환경 변수 설정 프록시를 사용 sudo apt-get -o Debug::Acquire::http=true update하는지 확인하고 실행하십시오 . 그리고 1 년 동안 프록시를 사용했다면 업데이트하십시오 .
Braiam

5

나는이 문제가 있었고 그 대답은 간단하다고 생각합니다. 구문이 중요합니다. 다음과 같아야합니다.

Acquire::http::Proxy "http://x.y.z.251:9090";

(추가 ":"및 종료 ";"가 있습니다.)


1

@Braiam

나는 명확하게하기 위해 별도의 답변을 시작하는 것이 좋습니다.

방화벽 뒤에 Vagrant와 Ubuntu 13.04 Raring x86_64 VM을 사용하여 빠른 테스트를 수행했습니다.

적절한 버전은 0.9.7.7ubuntu4

root@raring:~# apt-get --version 
apt 0.9.7.7ubuntu4 for amd64 compiled on Apr 12 2013 23:49:05
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 S.L: 'deb' Standard Debian binary tree
 S.L: 'deb-src' Standard Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: EDSP scenario file

업데이트 : Precise 12.04.3에서 동일한 방식으로 작동합니다.

root@support:/etc/apt# uname -a
Linux support 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 17:33:45 UTC 2013 i686 i686 i386 GNU/Linux
root@support:/etc/apt# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:        12.04
Codename:       precise
root@support:/etc/apt# apt-get --version
apt 0.8.16~exp12ubuntu10.14 for i386 compiled on Sep  8 2013 03:26:42

첫 번째-적절한 구성 파일 지우기

에서 프록시 설정을 지 웠습니다 /etc/apt/apt.conf. 또한 한 ackag모든 파일과 하위 디렉토리의 스캔 /etc/apt확인 APT 구성 파일에서 프록시 설정이 없는지 확인합니다.

기본적으로 {http_proxy,https_proxy,ftp_proxy}env 변수는 설정되어 있지 않습니다.

apt-get이 업데이트 서버에 연결할 수 없습니다.

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Connecting to au.archive.ubuntu.com (202.158.214.106)] [Connecting to security.ubuntu.com (91.189.91.13)] [Connecting to ppa.launchpad.net (91.189.95.83)]

2 차-환경 변수 설정

프록시 변수를 설정하기 만하면됩니다

export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"

apt-get은 이제 연결할 수 있습니다!

디버그 출력을 참조하십시오 (이것은 시도한 적이 없습니다).

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Working]GET http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg HTTP/1.1
Host: security.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://au.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: ppa.launchpad.net
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20bb4-3a5-4db2e154a1dc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Thu, 25 Apr 2013 11:54:39 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:1 http://au.archive.ubuntu.com raring Release.gpg [933 B]
0% [1 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


99% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20ee7-3a5-4e7594ace9200"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Fri, 27 Sep 2013 08:30:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:2 http://au.archive.ubuntu.com raring-updates Release.gpg [933 B]
50% [2 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


100% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:21 GMT
ETag: "16e0083d-3a5-4e6844f477fc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Mon, 16 Sep 2013 18:24:07 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:3 http://au.archive.ubuntu.com raring-backports Release.gpg [933 B]
67% [3 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "3a5-4e75c5d969600"
Server: Apache/2.2.22 (Ubuntu)
Expires: Fri, 27 Sep 2013 13:05:00 GMT
Accept-Ranges: bytes
Cache-Control: max-age=3159, s-maxage=3300, proxy-revalidate
Last-Modified: Fri, 27 Sep 2013 12:10:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

......

3-환경 변수 설정 해제

환경 변수를 설정 해제하십시오 => unset {http_proxy,https_proxy,ftp_proxy}

이제 apt-get을 연결할 수 없습니다.

결론

그냥 어떤처럼 man apt.conf말한다 HTTP : 프록시가 설정되지 않은 경우, http_proxy환경 변수가 사용됩니다.

BTW : 나는 또한 아치 리눅스 사용자입니다. Pacman은 비슷한 방식으로 작동합니다. 프록시를 사용하지 wget않거나 curl에 프록시를 pacman.conf사용하면`{http_proxy, https_proxy, ftp_proxy} '환경 변수가 사용됩니다.

업데이트 sudo 는 환경 변수를 유지하지 않습니다. 이것이 sudo apt-get update실패하는 이유 입니다. 이 문제를 해결하려면 (프록시 환경 변수 유지)을 사용하십시오 sudo -E apt-get update.


Btw, 답변에 핑 알림이 표시되지 않습니다. 또한 내 의견을보고 sudo대신 루트로 로그인 하여 시도하고 왜 작동하지 않는다고 말했는지보십시오.
Braiam

@ Braiam 나는 좀 더 테스트를했다. sudoenvrionment 변수를 보존하지 않으면 문제입니다! 그러나 sudo -E apt-get update && apt-get dist-upgrade;-) 를 사용하여 해결할 수 있습니다.
Terry Wang

나는 내 다른 의견 에서도 똑같이 말했다 : S
Braiam

나는 당신이 대답을 명확히 한 방법을 좋아합니다. 내 문제에 대한 해결책은 "sudo -E"팁이었습니다. 과거에 -E 옵션을 사용해야했던 적이 기억 나지 않습니다.
DaShaun

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.