Ceci concerne une installation d'Ubuntu 13.04 Desktop sur une machine virtuelle VirtualBox. Je suis sur un réseau d'entreprise avec un proxy HTTP à x.y.z.251: 9090. J'ai configuré le système d'exploitation invité avec le script d'auto-configuration, donc Firefox fonctionne bien, mais je ne parviens pas à obtenir "apt-get" ou "Ubuntu Software Center" pour se connecter à l'aide du proxy.
J'ai créé le fichier "/etc/apt/apt.conf", il contient maintenant une seule ligne de texte:
Acquire::http:Proxy "http://x.y.z.251:9090"
c'est ce que le fichier proxy.pac que j'ai spécifié dans "Paramètres système/Réseau/Proxy réseau" et appliqué à l'ensemble du système.
Lorsque j'utilise Firefox, une trace de paquet indique que la connexion TCP est établie via le proxy de l'entreprise sur le port 9090. Lorsque j'exécute "Ubuntu Software Center" et "apt-get", la trace de paquet affiche TCP Paquets SYN avec l'adresse IP de destination éventuelle et le port 80. Il n'y a bien entendu aucune réponse aux paquets SYN, car le pare-feu de l'entreprise bloque TCP les connexions sur le port 80 de l'entrée ou de la sortie. en dehors.
Avec "Sudo apt-get" dans une fenêtre de terminal, je vois toujours:
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)]
Finalement, je vois:
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.
Je ne suis pas du tout certain de ce que je fais mal.
--- Mise à jour ---- J'ai aussi essayé:
Acquire::http:proxy "http://user:[email protected]:9090/"
"x.y.z" sont, bien entendu, des détenteurs de place; Je doute que les agents de sécurité de mon employeur me consultent et affichent les chiffres réels. Je ne vois aucune différence dans la trace des paquets - "apt-get" utilise toujours les adresses IP réelles et le port 80. J'ai fait une erreur délibérée dans le fichier apt.conf et "apt-get" s'est arrêté avec une erreur, c'est pourquoi je Suis certain qu'il voit cette ligne de configuration pour le proxy, il ne semble tout simplement pas l'honorer.
J'utilise la connexion réseau "NAT", comme cela est contraire à la politique informatique ici pour établir un pont entre les réseaux, et le serveur DHCP ne fournit que les adresses d'adresses MAC connues. Je ne veux pas que la sécurité informatique frappe mon cube (encore).
D'après mon expérience, Ubuntu (GNOME) dans son ensemble ne fonctionne pas très bien avec PAC (Automatic Config). Pac (Proxy Auto-config) est essentiellement une logique JavaScript permettant de déterminer le proxy le plus proche ou le plus approprié pour vous. Je recommande vivement d'utiliser les serveurs proxy directement (en votre cas Réseau - Proxy réseau).
Quelques points à vérifier
L’interface graphique réseau-proxy réseau mettra à jour /etc/apt/apt.conf
et y définira les informations de proxy.
Vous pouvez trouver les détails en lisant quand même le fichier proxy.pac
.
Donc, le /etc/apt/apt.conf
devrait ressembler à celui ci-dessous (supposons que le serveur proxy soit => proxy.company.com port 80), n'utilisez PAS l'URL pac.
Acquire::http::proxy "http://proxy.company.com:80/";
Acquire::https::proxy "https://proxy.company.com:80/";
Acquire::ftp::proxy "ftp://proxy.company.com:80/";
NOTE: Si aucun proxy n'est spécifié dans les fichiers de configuration d'apt,
apt-get
se repliera sur la variable d'environnementhttp_proxy
.
À partir de la page de manuel apt.conf, répondez au commentaire de @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.
Vous pouvez vérifier les paramètres du proxy en lançant ce qui suit dans le terminal
echo $http_proxy
echo $https_proxy
echo $ftp_proxy
Si vous définissez correctement les variables env, vous devriez pouvoir mettre à jour votre interface de ligne de commande.
J'ai remarqué que apt-get
essayait de se connecter aux serveurs de mise à jour en utilisant leur adresse ipv6. Cela pourrait causer des problèmes (parfois les adresses IPV6 expirent ou changent).
Vous pouvez éditer /etc/gai.conf
et ajouter precedence ::ffff:0:0/96 100
pour préférer ipv4 à ipv6.
Plus de détails
Je pense avoir eu ce problème et la réponse est simple. La syntaxe est critique. Cela doit ressembler à ceci:
Acquire::http::Proxy "http://x.y.z.251:9090";
(Il y a un extra: "et un"; ")
@Braiam
Je pense qu'il est préférable de commencer une réponse séparée pour clarifier les choses.
J'ai fait un test rapide à l'aide de Vagrant et d'un Ubuntu 13.04 Raring x86_64 VM derrière un pare-feu.
la version d'apt-get est 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
Mise à jour: Cela fonctionne de la même manière sur 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
J'ai effacé les paramètres de proxy dans /etc/apt/apt.conf
. J'ai également procédé à ack
et ag
à l'analyse de tous les fichiers et sous-répertoires /etc/apt
afin de m'assurer qu'il n'y a pas de proxy défini dans les fichiers de configuration d'apt.
Par défaut, {http_proxy,https_proxy,ftp_proxy}
les variables env ne sont pas définies.
apt-get n'a pas pu se connecter aux serveurs de mise à jour.
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)]
Il suffit de définir les variables de proxy
export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"
apt-get est maintenant capable de se connecter!
Voir la sortie de débogage (c'est quelque chose que je n'ai jamais essayé).
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
......
désactiver les env vars => unset {http_proxy,https_proxy,ftp_proxy}
Maintenant, apt-get était incapable de se connecter.
Tout comme ce que man apt.conf
dit, si http :: Proxy n'est PAS défini, la variable d'environnement http_proxy
sera utilisée.
BTW: Je suis aussi un utilisateur d’Arch Linux. Pacman fonctionne de la même manière. Si je n’utilise pas wget
ou curl
avec un proxy dans pacman.conf
, il utilisera les variables d’environnement `{http_proxy, https_proxy, ftp_proxy} '.
Mise à jourSudo
NE conserve PAS les variables d'environnement. C'est pourquoi Sudo apt-get update
échoue. Pour résoudre le problème (conserver les variables d'environnement proxy), utilisez Sudo -E apt-get update
.