apt.conf "Acquire :: http: Proxy" proxyserver: port "ne semble pas être utilisé (Ubuntu 13.04 sous Virtual Box sur Win7)


13

Il s'agit d'une installation d'Ubuntu 13.04 Desktop dans une machine virtuelle VirtualBox. Je suis sur un réseau d'entreprise avec un proxy HTTP à xyz251: 9090. J'ai configuré le système d'exploitation invité avec le script de configuration automatique, donc Firefox fonctionne bien, mais je ne peux pas obtenir «apt-get» ou «Ubuntu Software Center» pour se connecter en utilisant le proxy.

J'ai créé le fichier "/etc/apt/apt.conf", il contient désormais une seule ligne de texte:

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

qui 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 montre que la connexion TCP est établie via le proxy d'entreprise sur le port 9090, lorsque j'exécute "Ubuntu Software Center" et "apt-get", la trace de paquet montre les paquets TCP SYN avec l'IP de destination éventuelle l'adresse et le port 80. Il n'y a bien sûr aucune réponse aux paquets SYN, car le pare-feu d'entreprise empêche les connexions TCP sur le port 80 d'entrer ou de sortir.

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 également essayé:

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

"xyz" sont, bien sûr, des espaces réservés; Je doute que les responsables de la sécurité de mon employeur me demandent de bien vouloir publier les chiffres réels. Je ne vois aucune différence dans la trace des paquets - "apt-get" utilise toujours les vraies adresses IP et le port 80. J'ai fait une erreur délibérée dans le fichier apt.conf et "apt-get" est sorti avec une erreur, donc j'ai 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", car elle est contraire à la politique informatique ici pour faire le pont entre les réseaux, et le serveur DHCP fournit uniquement des adresses aux adresses MAC connues. Je ne veux pas que la sécurité informatique frappe sur mon cube (encore une fois).


Apprenez quelque chose de nouveau tous les jours. Il semble que "/etc/apt/apt.conf" ne soit mis à jour que si vous utilisez l'option de configuration manuelle du proxy dans "Paramètres système / Réseau / Proxy réseau". Je suis ensuite entré et j'ai commenté manuellement les entrées que j'avais faites dans ce fichier et j'ai désactivé IPv6. Les entrées créées par l'interface graphique étaient à peu près identiques à ce que j'avais commencé, mais "apt-get" fonctionne maintenant. Cela aurait été bien d'avoir pu désactiver IPv6 via l'interface graphique, mais l'édition de "/etc/sysctl.conf" fonctionne très bien. Merci beaucoup à @ terry-wang
Daniel Glasser

Pourriez-vous ajouter cela comme réponse? Votre problème n'était pas ipv6, le proxy n'est pas défini correctement.
Braiam

Peut-être avez-vous raté un colon :plus entre httpet Proxy? http::Proxyà la place http:Proxy.
Gonmator

Réponses:


18

Sur la base de mon expérience passée, globalement Ubuntu (GNOME) ne fonctionne pas très bien avec PAC (Automatic Config). Pac (Proxy Auto-config) est essentiellement une logique JavaScript pour déterminer le proxy le plus proche ou le plus approprié pour vous, je vous recommande fortement d' utiliser directement les serveurs proxy (dans votre cas, Network - Network Proxy).

Quelques points à vérifier

Vérifiez votre /etc/apt/apt.conf

L'interface graphique du proxy réseau-réseau mettra à jour /etc/apt/apt.confet définira les informations de proxy là-bas.

Découvrez les informations du serveur proxy sur pac

Vous pouvez trouver les détails en lisant proxy.pacquand même le fichier.

Donc, le /etc/apt/apt.confdevrait ressembler à ci-dessous (supposez que le serveur proxy est => 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/";

REMARQUE: Si aucun proxy n'est spécifié dans les fichiers de configuration apt, apt-getil reviendra à http_proxyla variable d'environnement.

À 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.

Vérifier les variables d'environnement proxy

Vous pouvez vérifier les paramètres du proxy en exécutant 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 l'interface CLI.

Préférez IPv4

J'ai remarqué que apt-getj'essayais de me connecter aux serveurs de mise à jour en utilisant leur adresse ipv6. Cela pourrait provoquer des problèmes (parfois les adresses IPV6 expirent ou changent).

Vous pouvez modifier /etc/gai.confet ajouter precedence ::ffff:0:0/96 100pour préférer ipv4 à ipv6.

Plus de détails


Merci pour la réponse. La valeur que je mets dans "/etc/apt/apt.conf" est l'URI et le socket réels qui proviennent du fichier .pac, pas l'URI du fichier .pac lui-même (c'est ce que j'ai mis dans "paramètres système / réseau / proxy réseau ".
Daniel Glasser

Je suis allé dans "Paramètres système / Réseau / proxy réseau" et j'ai utilisé la configuration manuelle; cela a mis à jour "/etc/apt/apt.conf". J'ai également désactivé IPv4 en modifiant "/etc/sysctl.conf". Cela semble avoir fait l'affaire. Merci de votre aide.
Daniel Glasser

Ce n'est pas vrai, apt-get n'utilise jamais de http_proxyvariables d'environnement.
Braiam

@Braiam faire man apt.confet voir http::Proxy. J'ai également mis à jour la réponse. J'ai également utilisé des variables d'environnement http_proxyet https_proxyà utiliser avec apt-getpendant des années. Faites des recherches avant de voter contre.
Terry Wang

Faites aussi des recherches vous-même! Exécutez sudo apt-get -o Debug::Acquire::http=true updateet vérifiez vous-même si seul le réglage de la variable d'environnement utilise le proxy. Et si vous utilisiez un proxy pour l'année, mettez-vous à jour .
Braiam

5

Je crois que j'ai 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 ":" supplémentaire et un ";")


1

@Braiam

Je pense qu'il vaut mieux commencer une réponse séparée pour clarifier les choses.

J'ai fait un test rapide en utilisant Vagrant et une machine virtuelle Ubuntu 13.04 Raring x86_64 derrière le pare-feu.

la version 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

1er - effacer les fichiers de configuration apt

J'ai effacé les paramètres de proxy dans /etc/apt/apt.conf. J'ai également fait acket aganalysé tous les fichiers et sous-répertoires /etc/aptpour m'assurer qu'aucun proxy n'est défini dans les fichiers de configuration apt.

Par défaut, les {http_proxy,https_proxy,ftp_proxy}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)]

2e - définir les variables d'environnement

Définissez simplement les variables 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

......

3ème - désactiver les variables d'environnement

désactiver les vars env => unset {http_proxy,https_proxy,ftp_proxy}

Maintenant, apt-get n'a pas pu se connecter.

Conclusion

Tout comme ce qui est man apt.confdit, si http :: Proxy n'est PAS défini, http_proxyla variable d'environnement sera utilisée.

BTW : Je suis également un utilisateur d'Arch Linux. Pacman fonctionne de manière similaire, si je n'utilise pas wgetou curlavec proxy dans pacman.conf, il utilisera les variables d'environnement `{http_proxy, https_proxy, ftp_proxy} '.

La mise à jour sudo ne conserve PAS les variables d'environnement. Voilà pourquoi sudo apt-get updateéchoue. Pour contourner le problème (conserver les variables d'environnement proxy), utilisez sudo -E apt-get update.


Btw, je ne suis pas informé des réponses ping. Consultez également mon commentaire, essayez d'utiliser à la sudoplace une connexion en tant que root et voyez pourquoi j'ai dit que cela ne fonctionnait pas.
Braiam

@Braiam J'ai fait un test supplémentaire. sudone préserve PAS les variables d'environnement, c'est le problème! Mais vous pouvez le contourner en utilisant sudo -E apt-get update && apt-get dist-upgrade;-)
Terry Wang

J'ai dit un peu la même chose dans mon autre commentaire : S
Braiam

J'aime la façon dont vous avez clarifié la réponse. La solution à mon problème était la pointe "sudo -E". Je ne me souviens pas avoir jamais eu besoin d'utiliser l'option -E dans le passé.
DaShaun

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.