apt.conf "Acquire :: http: Proxy" Proxyserver: Port "scheint nicht verwendet zu werden (Ubuntu 13.04 unter Virtual Box unter Win7)

13

Dies gilt für eine Installation von Ubuntu 13.04 Desktop in einer VirtualBox-VM. Ich bin in einem Unternehmensnetzwerk mit einem HTTP-Proxy unter xyz251: 9090. Ich habe das Gastbetriebssystem mit dem Autokonfigurationsskript konfiguriert, damit Firefox einwandfrei funktioniert, aber ich kann "apt-get" oder "Ubuntu Software Center" nicht dazu bringen, eine Verbindung über den Proxy herzustellen.

Ich habe die Datei "/etc/apt/apt.conf" erstellt, sie enthält jetzt eine einzelne Textzeile:

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

Das ist die Datei proxy.pac, die ich unter "Systemeinstellungen / Netzwerk / Netzwerkproxy" angegeben und auf das gesamte System angewendet habe.

Wenn ich Firefox verwende, zeigt eine Paketverfolgung an, dass die TCP-Verbindung über den Unternehmensproxy an Port 9090 hergestellt wird. Wenn ich "Ubuntu Software Center" und "apt-get" ausführe, zeigt die Paketverfolgung TCP-SYN-Pakete mit der eventuellen Ziel-IP an Adresse und Port 80. Es erfolgt natürlich keine Antwort auf die SYN-Pakete, da die Firewall des Unternehmens das Ein- und Aussteigen von TCP-Verbindungen auf Port 80 blockiert.

Mit "sudo apt-get" in einem Terminalfenster sehe ich immer:

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)]

Schließlich sehe ich:

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.

Ich bin mir überhaupt nicht sicher, was ich falsch mache.

--- Update ---- Ich habe auch versucht:

Acquire::http:proxy "http://user:[email protected]:9090/"

"xyz" sind natürlich Platzhalter; Ich bezweifle, dass die Sicherheitsbeamten meines Arbeitgebers mir die tatsächlichen Zahlen mitteilen würden. Ich sehe keinen Unterschied in der Paketverfolgung - "apt-get" verwendet immer noch die realen IP-Adressen und den Port 80. Ich habe absichtlich einen Fehler in der Datei apt.conf gemacht und "apt-get" mit einem Fehler beendet bin sicher, dass es diese Konfigurationszeile für den Proxy sieht, es scheint nur nicht, es zu honorieren.

Ich verwende die "NAT" -Netzwerkverbindung, da dies gegen die IT-Richtlinie zur Überbrückung von Netzwerken verstößt und der DHCP-Server nur Adressen für bekannte MAC-Adressen bereitstellt. Ich möchte nicht, dass die IT-Sicherheit (wieder) auf meinen Würfel prallt.

Daniel Glasser
quelle
Lerne jeden Tag etwas Neues. Es scheint, dass "/etc/apt/apt.conf" nur aktualisiert wird, wenn Sie die manuelle Proxy-Konfigurationsoption in "Systemeinstellungen / Netzwerk / Netzwerkproxy" verwenden. Dann ging ich hinein und kommentierte die Einträge, die ich in dieser Datei vorgenommen hatte, manuell aus und deaktivierte IPv6. Die Einträge, die von der GUI erstellt wurden, waren ziemlich identisch mit denen, mit denen ich begonnen habe, aber "apt-get" funktioniert jetzt. Es wäre schön gewesen, IPv6 über die GUI deaktivieren zu können, aber die Bearbeitung von "/etc/sysctl.conf" funktioniert einwandfrei. Vielen Dank an @ terry-wang
Daniel Glasser
Könnten Sie das als Antwort hinzufügen? Ihr Problem war IPv6 nicht der Proxy falsch eingestellt.
Braiam
Vielleicht haben Sie :zwischen httpund einen Doppelpunkt mehr verpasst Proxy? http::Proxystattdessen http:Proxy.
Gonmator

Antworten:

18

Nach meinen bisherigen Erfahrungen funktioniert Ubuntu (GNOME) mit PAC (Automatic Config) insgesamt nicht sehr gut. Pac (Proxy Auto-config) ist im Grunde eine JavaScript-Logik, um den nächstgelegenen oder am besten geeigneten Proxy für Sie zu ermitteln. Ich empfehle dringend , die Proxy-Server direkt zu verwenden (in Ihrem Fall Netzwerk - Netzwerk-Proxy).

Ein paar Dinge zu überprüfen

Überprüfen Sie Ihre /etc/apt/apt.conf

Die Netzwerk-Netzwerk-Proxy-Benutzeroberfläche aktualisiert /etc/apt/apt.confund stellt die Proxy-Informationen dort ein.

Informationen zum Proxy-Server erhalten Sie von pac

Sie finden die Details, indem Sie die proxy.pacDatei trotzdem lesen .

Das /etc/apt/apt.confsollte also so aussehen (angenommen, der Proxyserver ist => proxy.company.com Port 80), verwenden Sie KEINE 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/";

HINWEIS: Wenn in den apt-Konfigurationsdateien kein Proxy angegeben ist, apt-getwird auf die http_proxyUmgebungsvariable zurückgegriffen.

Antworten Sie in der Manpage von apt.conf auf den Kommentar von @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.

Überprüfen Sie die Proxy-Umgebungsvariablen

Sie können die Proxy-Einstellungen überprüfen, indem Sie im Terminal Folgendes ausführen

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Wenn Sie die Umgebungsvariablen korrekt festlegen, sollten Sie in der Lage sein, in der CLI zu aktualisieren.

Bevorzugen Sie IPv4

Mir ist aufgefallen, dass ich apt-getversucht habe, über die IPv6-Adresse eine Verbindung zu den Update-Servern herzustellen. Dies kann zu Problemen führen (manchmal laufen die IPV6-Adressen ab oder ändern sich).

Sie können bearbeiten /etc/gai.confund hinzufügen, precedence ::ffff:0:0/96 100um ipv4 vor ipv6 zu bevorzugen.

Mehr Details

Terry Wang
quelle
Danke für die Antwort. Der Wert, den ich in "/etc/apt/apt.conf" eingegeben habe, ist der tatsächliche URI und Socket, der aus der .pac-Datei stammt, nicht der URI der .pac-Datei selbst (das habe ich in "Systemeinstellungen / Netzwerk / Netzwerk-Proxy ".
Daniel Glasser
Ich ging in "Systemeinstellungen / Netzwerk / Netzwerk-Proxy" und verwendete die manuelle Konfiguration; dies hat "/etc/apt/apt.conf" aktualisiert. Ich habe auch IPv4 durch Bearbeiten von "/etc/sysctl.conf" deaktiviert. Dies scheint den Trick getan zu haben. Danke für Ihre Hilfe.
Daniel Glasser
Nicht wahr, apt-get verwendet niemals http_proxyUmgebungsvariablen.
Braiam
@Braiam mach ein man apt.confund schau http::Proxy. Ich habe auch die Antwort aktualisiert. Auch ich habe mit http_proxyund https_proxyVariablen Umgebung mit verwenden apt-getseit Jahren. Recherchiere, bevor du abstimmst.
Terry Wang
Recherchiere auch selbst! Führen sudo apt-get -o Debug::Acquire::http=true updateSie den Proxy aus und überprüfen Sie, ob nur die Umgebungsvariable den Proxy verwendet. Und wenn Sie Proxy für das Jahr verwendet haben, lassen Sie sich aktualisieren .
Braiam
5

Ich glaube, ich hatte genau dieses Problem und die Antwort ist einfach. Die Syntax ist kritisch. Es muss so aussehen:

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

(Es gibt ein zusätzliches ":" und ein abschließendes ";")

kh
quelle
1

@Braiam

Ich denke, es ist besser, eine separate Antwort zu beginnen, um die Dinge zu klären.

Ich habe einen kurzen Test mit Vagrant und einer Ubuntu 13.04 Raring x86_64 VM hinter einer Firewall durchgeführt.

Apt-Get-Version ist 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

Update: Bei Precise 12.04.3 funktioniert es genauso

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

1. Apt-Konfigurationsdateien löschen

Ich habe die Proxy-Einstellungen in gelöscht /etc/apt/apt.conf. Ich habe auch ackund agScan aller Dateien und Unterverzeichnisse , /etc/aptum dort sicherzustellen , dass es keinen Proxy - Satz in apt - Konfigurationsdateien.

Standardmäßig {http_proxy,https_proxy,ftp_proxy}sind keine env-Variablen festgelegt.

apt-get konnte keine Verbindung zu den Update-Servern herstellen.

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)]

2nd - Umgebungsvariablen setzen

Legen Sie einfach die Proxy-Variablen fest

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

apt-get kann jetzt eine Verbindung herstellen!

Siehe die Debug-Ausgabe (dies ist etwas, was ich noch nie ausprobiert habe).

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. Deaktivieren Sie die Umgebungsvariablen

Deaktivieren Sie die env vars => unset {http_proxy,https_proxy,ftp_proxy}

Jetzt konnte apt-get keine Verbindung herstellen.

Fazit

Genauso wie es man apt.confheißt, wenn http :: Proxy NICHT gesetzt ist, wird die http_proxyUmgebungsvariable verwendet.

Übrigens : Ich bin auch ein Arch Linux-Benutzer. Pacman funktioniert auf ähnliche Weise. Wenn ich keine wgetoder curlProxy pacman.conf-Umgebungsvariablen verwende, werden die Umgebungsvariablen "{http_proxy, https_proxy, ftp_proxy}" verwendet.

Bei der Aktualisierung werden sudo Umgebungsvariablen NICHT beibehalten. Deshalb sudo apt-get updatescheitert. Verwenden Sie, um das Problem zu umgehen (Proxy-Umgebungsvariablen beibehalten) sudo -E apt-get update.

Terry Wang
quelle
Übrigens werde ich nicht über Ping-Antworten informiert. Sehen Sie sich auch meinen Kommentar an, und versuchen Sie, sich sudostattdessen als root anzumelden, und sehen Sie, warum ich sagte, dass es nicht funktioniert hat.
Braiam
@Braiam Ich habe noch einen Test gemacht. sudoBewahrt keine Umgebungsvariablen, das ist das Problem! Aber Sie können es sudo -E apt-get update && apt-get dist-upgradeumgehen, indem Sie ;-)
Terry Wang
Das habe ich auch in meinem anderen Kommentar gesagt : S
Braiam
Mir gefällt, wie Sie die Antwort geklärt haben. Die Lösung für mein Problem war der "sudo-E" -Tipp. Ich erinnere mich nicht, jemals die Option -E verwendet zu haben.
DaShaun