apt.conf "Acquire :: http: Proxy" proxyserver: port "sembra non essere usato (Ubuntu 13.04 in Virtual Box su Win7)


13

Questo è per un'installazione di Ubuntu 13.04 Desktop in una VM VirtualBox. Sono su una rete corprate con un proxy HTTP a xyz251: 9090. Ho configurato il sistema operativo guest con lo script di autoconfigurazione, quindi Firefox funziona bene, ma non riesco a ottenere "apt-get" o "Ubuntu Software Center" per connettermi usando il proxy.

Ho creato il file "/etc/apt/apt.conf", ora contiene una singola riga di testo:

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

quale è il file proxy.pac che ho specificato in "Impostazioni di sistema / Proxy di rete / rete" e applicato all'intero sistema.

Quando utilizzo Firefox, una traccia del pacchetto mostra che la connessione TCP viene eseguita tramite il proxy aziendale alla porta 9090, quando eseguo "Ubuntu Software Center" e "apt-get", la traccia del pacchetto mostra i pacchetti TCP SYN con l'eventuale IP di destinazione indirizzo e porta 80. Naturalmente, non vi è alcuna risposta ai pacchetti SYN, poiché il firewall aziendale impedisce alle connessioni TCP sulla porta 80 di entrare o uscire.

Con "sudo apt-get" in una finestra del terminale, vedo sempre:

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

Alla fine, vedo:

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.

Non sono affatto sicuro di cosa stia facendo di sbagliato.

--- Aggiornamento ---- Ho anche provato:

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

"xyz" sono, ovviamente, segnaposto; Dubito che il personale addetto alla sicurezza del mio datore di lavoro mi guarderebbe gentilmente pubblicando i numeri reali. Non vedo alcuna differenza nella traccia del pacchetto - "apt-get" sta ancora usando gli indirizzi IP reali e la porta 80. Ho fatto un errore deliberato nel file apt.conf e "apt-get" è uscito con un errore, quindi ho sono sicuro che vede questa linea di configurazione per il proxy, ma non sembra onorarla.

Sto usando la connessione di rete "NAT", in quanto è contro la politica IT qui per il bridge tra le reti, e il server DHCP fornisce solo indirizzi a indirizzi MAC noti. Non voglio che la sicurezza IT si spacchi sul mio cubo (di nuovo).


Impara qualcosa di nuovo ogni giorno. Sembra che "/etc/apt/apt.conf" venga aggiornato solo se si utilizza l'opzione di configurazione manuale del proxy in "Impostazioni di sistema / Rete / Proxy di rete". Sono quindi entrato e ho commentato le voci che avevo fatto in quel file manualmente e ho disabilitato IPv6. Le voci create dalla GUI erano praticamente identiche a quelle con cui avevo iniziato, ma "apt-get" ora funziona. Sarebbe stato bello poter disabilitare IPv6 tramite la GUI, ma la modifica di "/etc/sysctl.conf" funziona bene. Mille grazie a @ terry-wang
Daniel Glasser,

Potresti aggiungerlo come risposta? Il tuo problema era ipv6 non il proxy impostato in modo errato.
Braiam,

Forse ti sei perso un colon :più tra httpe Proxy? http::Proxyinvece http:Proxy.
Gonmator,

Risposte:


18

Sulla base della mia esperienza passata, Ubuntu generale (GNOME) non funziona molto bene con PAC (configurazione automatica). Pac (Proxy Auto-config) è fondamentalmente una logica JavaScript per determinare il proxy più vicino o più appropriato per te, ti consiglio vivamente di utilizzare direttamente i server proxy (nel tuo caso Network - Network Proxy).

Alcune cose da controllare

Controlla il tuo /etc/apt/apt.conf

Network -Network Proxy GUI aggiornerà /etc/apt/apt.confe imposterà lì le informazioni proxy.

Scopri le informazioni sul server proxy da pac

Puoi trovare i dettagli leggendo proxy.paccomunque il file.

Quindi /etc/apt/apt.confdovrebbe apparire come sotto (supponiamo che il server proxy sia => proxy.company.com porta 80), NON usare 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/";

NOTA: se non viene specificato alcun proxy nei file di configurazione apt, apt-gettornerà alla http_proxyvariabile di ambiente.

Dalla pagina man apt.conf, rispondi al commento di @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.

Controlla le variabili di ambiente proxy

È possibile controllare le impostazioni del proxy eseguendo quanto segue nel terminale

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Se si impostano correttamente le variabili env, dovrebbe essere possibile aggiornare nella CLI.

Preferisci IPv4

Ho notato che apt-getstava cercando di connettersi ai server di aggiornamento utilizzando il loro indirizzo ipv6. Ciò potrebbe causare problemi (a volte gli indirizzi IPV6 scadono o cambiano).

È possibile modificare /etc/gai.confe aggiungere precedence ::ffff:0:0/96 100per preferire ipv4 rispetto a ipv6.

Più dettagli


Grazie per la risposta. Il valore che ho inserito in "/etc/apt/apt.conf" è l'URI e il socket effettivi che provengono dal file .pac, non dall'URI del file .pac stesso (è quello che ho inserito in "impostazioni di sistema / rete / proxy di rete ".
Daniel Glasser,

Sono andato in "Impostazioni di sistema / Networking / proxy di rete" e ho usato la configurazione manuale; questo ha aggiornato "/etc/apt/apt.conf". Ho anche disabilitato IPv4 modificando "/etc/sysctl.conf". Questo sembra aver fatto il trucco. Grazie per l'aiuto.
Daniel Glasser,

Non è vero, apt-get non usa mai http_proxyné variabili d'ambiente.
Braiam,

@Braiam fare un man apt.confe vedere http::Proxy. Ho anche aggiornato la risposta. Inoltre ho usato http_proxye https_proxyvariabili d'ambiente da usare apt-getper anni. Fai qualche ricerca prima di votare verso il basso.
Terry Wang,

Inoltre, fai ricerche da solo! Esegui sudo apt-get -o Debug::Acquire::http=true updatee controlla te stesso se solo l' impostazione della variabile di ambiente utilizza il proxy. E se stavi usando il proxy per anno, tieniti aggiornato .
Braiam,

5

Credo di aver avuto questo problema e la risposta è semplice. La sintassi è critica. Deve assomigliare a questo:

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

(C'è un extra ":" e un termine ";")


1

@Braiam

Penso che sia meglio iniziare una risposta separata per chiarire le cose.

Ho fatto un rapido test usando Vagrant e una Ubuntu 13.04 Raring x86_64 VM dietro il firewall.

la versione di apt-get è 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

Aggiornamento: funziona allo stesso modo su 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

1 ° - cancella i file di configurazione apt

Ho cancellato le impostazioni del proxy in /etc/apt/apt.conf. Ho anche fatto acke agscansionato tutti i file e le sottodirectory /etc/aptper assicurarmi che non ci siano proxy impostati nei file di configurazione di apt.

Per impostazione predefinita, le {http_proxy,https_proxy,ftp_proxy}variabili env non sono impostate.

apt-get non è stato in grado di connettersi ai server di aggiornamento.

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 ° - imposta le variabili d'ambiente

Basta impostare le variabili proxy

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

apt-get è ora in grado di connettersi!

Vedi l'output di debug (questo è qualcosa che non ho mai provato).

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 °: disattiva le variabili di ambiente

disinserire env vars => unset {http_proxy,https_proxy,ftp_proxy}

Ora apt-get non è stato in grado di connettersi.

Conclusione

Proprio come quello che man apt.confdice, se http :: Proxy NON è impostato, http_proxyverrà utilizzata la variabile di ambiente.

A proposito : sono anche un utente Arch Linux. Pacman funziona in modo simile, se non utilizzo wgeto curlcon proxy in pacman.conf, utilizzerà le variabili di ambiente `{http_proxy, https_proxy, ftp_proxy} '.

L'aggiornamento sudo NON conserva le variabili di ambiente. Ecco perché sudo apt-get updatefallisce. Per risolvere il problema (preservare le variabili di ambiente proxy), utilizzare sudo -E apt-get update.


A proposito, non ricevo notifiche di ping nelle risposte. Inoltre, vedi il mio commento, prova a utilizzare sudoinvece il login come root e vedi perché ho detto che non funzionava.
Braiam,

@Braiam Ho fatto qualche altro test. sudoNON preserva le variabili di potenziamento, questo è il problema! Ma puoi risolverlo usando sudo -E apt-get update && apt-get dist-upgrade;-)
Terry Wang

Ho detto lo stesso nell'altro mio commento : S
Braiam

Mi piace come hai chiarito la risposta. La soluzione al mio problema era il suggerimento "sudo -E". Non ricordo di aver mai avuto bisogno di usare l'opzione -E in passato.
DaShaun,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.