apt.conf "Acquire :: http: Proxy" proxyserver: port "parece no usarse (Ubuntu 13.04 en Virtual Box en Win7)

13

Esto es para una instalación de Ubuntu 13.04 Desktop en una VM VirtualBox. Estoy en una red corporativa con un proxy HTTP en xyz251: 9090. He configurado el sistema operativo invitado con el script de configuración automática, por lo que Firefox funciona bien, pero no puedo hacer que "apt-get" o "Ubuntu Software Center" se conecten usando el proxy.

Creé el archivo "/etc/apt/apt.conf", ahora contiene una sola línea de texto:

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

que es el archivo proxy.pac que especifiqué en "Configuración del sistema / Red / Proxy de red" y apliqué a todo el sistema.

Cuando uso Firefox, un rastreo de paquetes muestra que la conexión TCP se realiza a través del proxy corporativo en el puerto 9090, cuando ejecuto "Ubuntu Software Center" y "apt-get", el rastreo de paquetes muestra paquetes TCP SYN con la eventual IP de destino dirección y puerto 80. Por supuesto, no hay respuesta a los paquetes SYN, ya que el firewall corporativo impide que las conexiones TCP en el puerto 80 entren o salgan.

Con "sudo apt-get" en una ventana de terminal, siempre veo:

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

Finalmente, veo:

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.

No estoy del todo seguro de lo que estoy haciendo mal.

--- Actualización ---- También he intentado:

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

"xyz" son, por supuesto, marcadores de posición; Dudo que la gente de seguridad de mi empleador me vea amablemente publicando los números reales. No veo ninguna diferencia en el rastreo de paquetes: "apt-get" todavía utiliza las direcciones IP reales y el puerto 80. Cometí un error deliberado en el archivo apt.conf y "apt-get" salió con un error, así que Estoy seguro de que ve esta línea de configuración para el proxy, simplemente no parece honrarla.

Estoy usando la conexión de red "NAT", ya que está en contra de la política de TI aquí establecer un puente entre las redes, y el servidor DHCP solo proporciona direcciones a direcciones MAC conocidas. No quiero que la seguridad de TI golpee mi cubo (de nuevo).

Daniel Glasser
fuente
Aprenda algo nuevo cada día. Parece que "/etc/apt/apt.conf" solo se actualiza si utiliza la opción de configuración manual del proxy en "Configuración del sistema / Redes / Proxy de red". Luego entré y comenté las entradas que había hecho en ese archivo manualmente, y deshabilité IPv6. Las entradas creadas por la GUI eran prácticamente idénticas a las que comencé, pero "apt-get" ahora funciona. Hubiera sido bueno poder desactivar IPv6 a través de la GUI, pero editar "/etc/sysctl.conf" funciona bien. Muchas gracias a @ terry-wang
Daniel Glasser
¿Podría agregar eso como respuesta? Su problema era ipv6, no el proxy configurado incorrectamente.
Braiam
Tal vez te perdiste un colon :más entre httpy Proxy? http::Proxyen su lugar http:Proxy.
Gonmator

Respuestas:

18

Según mi experiencia anterior, Ubuntu en general (GNOME) no funciona muy bien con PAC (Configuración automática). Pac (Proxy Auto-config) es básicamente la lógica de JavaScript para determinar el proxy más cercano o más apropiado para usted, le recomiendo usar los servidores proxy directamente (en su caso, Network - Network Proxy).

Algunas cosas para verificar

Verifique su /etc/apt/apt.conf

La GUI de red-proxy de red se actualizará /etc/apt/apt.confy establecerá la información del proxy allí.

Descubre la información del servidor proxy de pac

Puede encontrar los detalles leyendo el proxy.pacarchivo de todos modos.

Por lo tanto, /etc/apt/apt.confdebería verse a continuación (supongamos que el servidor proxy es => proxy.company.com puerto 80), NO use la 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/";

NOTA: Si no se especifica un proxy en los archivos de configuración de apt, apt-getrecurrirá a http_proxyla variable de entorno.

Desde la página de manual de apt.conf, responda el comentario 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.

Verifique las variables de entorno proxy

Puede verificar la configuración del proxy ejecutando lo siguiente en la terminal

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Si configura las variables env correctamente, debería poder actualizar en la CLI.

Prefiero IPv4

Noté que apt-getestaba tratando de conectarme a los servidores de actualización usando su dirección ipv6. Esto podría causar problemas (a veces las direcciones IPV6 caducan o cambian).

Puede editar /etc/gai.confy agregar precedence ::ffff:0:0/96 100para preferir ipv4 sobre ipv6.

Más detalles

Terry Wang
fuente
Gracias por la respuesta. El valor que pongo en "/etc/apt/apt.conf" es el URI y el socket reales que provienen del archivo .pac, no el URI del archivo .pac en sí (eso es lo que puse en "configuración del sistema / redes / proxy de red ".
Daniel Glasser
Entré en "Configuración del sistema / Redes / proxy de red" y utilicé la configuración manual; esto actualizó "/etc/apt/apt.conf". También deshabilité IPv4 editando "/etc/sysctl.conf". Esto parece haber hecho el truco. Gracias por tu ayuda.
Daniel Glasser
No es cierto, apt-get nunca usa http_proxyni ninguna variable de entorno.
Braiam
@Braiam haz un man apt.confy verás http::Proxy. También he actualizado la respuesta. También he estado usando http_proxyy https_proxyvariables de entorno para su uso con apt-getlos años. Investigue un poco antes de votar.
Terry Wang
Además, investigue usted mismo! Ejecute sudo apt-get -o Debug::Acquire::http=true updatey verifique si solo la configuración de la variable de entorno utiliza el proxy. Y si estaba usando proxy por año, manténgase actualizado .
Braiam
5

Creo que he tenido este mismo problema y la respuesta es simple. La sintaxis es crítica. Debe verse así:

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

(Hay un ":" adicional y una terminación ";")

kh
fuente
1

@Braiam

Creo que es mejor comenzar una respuesta por separado para aclarar las cosas.

Hice una prueba rápida usando Vagrant y una máquina virtual Ubuntu 13.04 Raring x86_64 detrás del firewall.

la versión de apt-get es 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

Actualización: Funciona de la misma manera en 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

Primero: borrar los archivos de configuración de apt

Borré la configuración del proxy en /etc/apt/apt.conf. También lo hice acky agescaneé todos los archivos y subdirectorios /etc/aptpara asegurarme de que no haya un proxy establecido en los archivos de configuración de apt.

Por defecto, las {http_proxy,https_proxy,ftp_proxy}variables env no están establecidas.

apt-get no pudo conectarse a los servidores de actualización.

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º - establecer variables de entorno

Simplemente configure las variables proxy

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

¡apt-get ahora puede conectarse!

Vea la salida de depuración (esto es algo que nunca he intentado).

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 ° - desarmar las variables de entorno

desarmar los env env => unset {http_proxy,https_proxy,ftp_proxy}

Ahora apt-get no pudo conectarse.

Conclusión

Al igual que lo que man apt.confdice, si http :: Proxy NO está configurado, http_proxyse utilizará la variable de entorno.

Por cierto : también soy un usuario de Arch Linux. Pacman funciona de manera similar, si no uso wgeto curlcon proxy pacman.conf, usará las variables de entorno `` {http_proxy, https_proxy, ftp_proxy} ''.

La actualización sudo NO conserva las variables de entorno. Por eso sudo apt-get updatefalla. Para solucionar el problema (preservar las variables de entorno proxy), use sudo -E apt-get update.

Terry Wang
fuente
Por cierto, no recibo notificaciones de ping en las respuestas. Además, vea mi comentario, intente usar el sudoinicio de sesión como root y vea por qué dije que no funcionó.
Braiam
@Braiam hice un poco más de prueba. sudoNO conserva las variables de entorno, ¡ese es el problema! Pero puede solucionarlo usando sudo -E apt-get update && apt-get dist-upgrade;-)
Terry Wang
Dije lo mismo en mi otro comentario : S
Braiam
Me gusta cómo aclaraste la respuesta. La solución a mi problema fue la sugerencia "sudo -E". No recuerdo haber necesitado usar la opción -E en el pasado.
DaShaun