'apt-get' no funciona con Proxy


52

Para el comando

sudo apt-get update

Me sale el siguiente error:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Estoy ejecutando Ubuntu 10.10 instalado en Windows XP usando VirtualBox. Para las conexiones a Internet estoy usando un servidor proxy con autenticación. Traté de usar la gnome-network-proxyherramienta para establecer la configuración del proxy en todo el sistema.

Después de que /etc/environmentse haya actualizado por http_proxyvariable con el formato http://my_proxy:port/, no hubo datos de autenticación.

Lo comprobé con Firefox. El navegador solicitó mi nombre de usuario y contraseña y todo funcionaba bien. Desafortunadamente, no fue el caso de apt-get. También he tratado de hacer lo que se describe aquí . Lamentablemente no funciona.

¿Puede estar relacionado de alguna manera con el hecho de que un proxy está en un dominio de Windows, alguna idea?

Mi nombre de proxy es http-proxy . ¿Es ' - ' un personaje especial aquí?


2
¿Ha utilizado el proxy de red global en sistema -> preferencias -> proxy de red y ha aplicado la configuración a nivel mundial?
DemonWareXT

Puede probar la herramienta GUI fácil de usar GrrProxy
Renae Lider

Respuestas:


53

Para mi red corporativa, mi administrador me dio el nombre del proxy en el formato:

http://[username]:[password]@[proxy-webaddress]:[port]

Para nuestra red de Windows nuestro nombre de usuario está en el formato:

[domain]\[username]

Por ejemplo:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

Esto se agregó al siguiente archivo NUEVO (no existe de manera predeterminada):

gksudo gedit /etc/apt/apt.conf.d/01proxy

Se agregó el siguiente texto:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

Si está utilizando un proxy anónimo, entonces no necesita sus credenciales de inicio de sesión:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Guarde el archivo y luego verifique que todo estaba bien con:

sudo apt-get update

Para aquellos que leerán esto más adelante: esto parece un truco para el ojo inexperto, pero es una manera increíblemente simple de hacer que el poder corporativo obedezca.
macduff

1
Esto funciona perfectamente A MENOS QUE haya configurado anteriormente /etc/apt/apt.conf con una línea de adquisición incorrecta. Hice exactamente eso, y todo lo que tuve que hacer fue regresar y eliminar esa línea.
Skip Huffman

En Ubuntu 12.10, tuve que copiar los cambios realizados en /etc/apt/apt.conf.d/01proxy en /etc/apt/apt.conf antes de que funcionara.
Stephen Niedzielski

incluso con estas ediciones, no pude hacer que esto funcionara para mí con 12.04 ... pero logré hacerlo funcionar usando y configurando ntlmaps y señalando el archivo apt.conf al proxy intermedio allí.
Monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(que por supuesto no funcionará sin un proxy configurado ...) Afortunadamente sudofunciona bien.
TED

13

Descubrí que USERNAME y PASSWORD ingresados ​​en el applet "Network Proxy" no se almacenan en el archivo apt.conf, debe agregar manualmente el nombre de usuario y la contraseña en el archivo /etc/apt/apt.conf.

El applet "Proxy de red" solo almacena el nombre de host y el puerto.

La sintaxis básica es

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Si está utilizando nombres de usuario y contraseña de Windows, siga estos consejos:

User = Domain/Username

(los usuarios de Windows /no usan \)

Si está utilizando una contraseña fuerte / compleja de Windows con caracteres especiales, debe usar la codificación de URL para los valores, por ejemplo, una "@" en la contraseña sería "% 40".


(los usuarios de Windows usan / no) Entonces, por eso estoy atascado :) ¡Gracias!
GaiusSensei

9

Prueba a poner http_proxya http: // user: pass @ servidor proxy: puerto /

editar:
si la configuración http_proxyno funciona, intente editar apt.conf. En
Ubuntu apt.confestá fragmentado en el /etc/apt/apt.conf.d/directorio.
En este directorio editar /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

o intente configurarlo usando Synaptic: Configuración -> Preferencias -> Red
Y luego configure su configuración de proxy en "Configuración manual de proxy".


3
¿Te refieres a / etc / environment file?
tommyk

Yest, establecerá esta variable a nivel mundial.
Casual Coder

¿Cómo codificaría uno los dos puntos como parte de la contraseña?
k0pernikus

/ etc / environment no funciona con apt-get (o al menos requiere reiniciar;), el cambio de apt.conf tiene un efecto inmediato
Danubian Sailor

Puedo confirmar la configuración "Configuración manual del proxy" y "Aplicar en todo el sistema" en la red funciona con apt-get.
Will Sheppard

4

Estoy detrás de un proxy MS ISA y estoy usando el proxy de autenticación Cntlm; en el apt.conftengo 4 lineas; Leí en alguna parte que la última línea debe estar vacía, pero no estoy seguro. Funciona perfectamente:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";

3

cntlm tiene una opción de descubrimiento que ayuda a encontrar la configuración correcta para trabajar con la autenticación NTLM de su red, intente esto:

cntlm -I -M http://test.com

copie y pegue los resultados en /etc/cntlm.conf

reiniciar cntlm


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(que si el curso no funciona si mi proxy no está configurado correctamente ...)
TED

2
  1. Abra la terminal y agregue las siguientes líneas a /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Agregue estas 2 líneas:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Guardar y Salir.

    Ahora apt-get updatey debería funcionar detrás de un proxy, pero notará que todavía algo no funciona, ese es el add-apt-repositorycomando.

    Para poder agregar un repositorio detrás de un proxy, escriba los siguientes comandos:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    Ahora puede agregar repositorios en Lucid y Natty usando LANG = C add-apt-repository

    Ejemplo:

    root @ ubuntu: ~ # LANG = C add-apt-repository ppa: motumedia / mplayer-daily

Via Unixmen


2

¿Cómo aplicar apt-get update o instalar en Ubuntu? Estaba detrás de un servidor proxy y después de instalar Ubuntu no pude actualizar o instalar nada usando el comando apt-get. Después de buscar, descubrí que el paquete apt ha cambiado, ahora no hay más apt.conf en el directorio / etc / apt.

Lo que hice para resolver este problema es lo siguiente:

Abrir terminal y el archivo

sudo -H gedit /etc/bash.bashrc

y agregue al final del archivo estas 2 líneas:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

Ahora guarde y salga, ahora podrá actualizar, actualizar o instalar paquetes en Ubuntu


He agregado exportaciones como usted sugirió. Todavía no funciona. Ahora recibí un mensaje de error diferente "No se pudo conectar a extras.ubuntu.com:80 (91.189.88.33). - conectar (110: Se agotó el tiempo de espera de la conexión)". <br> Lo extraño es que cuando ingreso la misma configuración de proxy en las preferencias de Firefox, puedo navegar por la web.
tommyk

@tommyk, ¿podría publicar su /etc/apt/sources.list y actualizar su pregunta aquí o intentar eliminar extras.ubuntu.com de su /etc/apt/sources.list y ejecutar apt-get update
hhlp

He reemplazado mi sources.list con uno predeterminado de la página web de ubuntu. Todavía recibí el mismo error para cada repositorio listado en este archivo.
tommyk

2

¡Este ha estado trabajando para mí!

(agregar proxy manualmente desde la GUI a través de la configuración del sistema-> red, etc. debería funcionar) Pero si no funciona y exporta la variable env desde el terminal:

export http_proxy=http://<your proxy url>:<proxy port>

y nuevamente para https:

export https_proxy= <usually the same as the http>

Lo más importante es agregar -E: para ejecutar sudo apt-get installo sudo apt-get updatedebe ejecutar:

sudo -E <command>

El "-E" utiliza las variables de entorno del usuario para la raíz (sudo), es decir, el http_proxy / https_proxy que acaba de exportar.

Espero eso ayude :)


1

Con un proxy BlueCoat, para mí el formato del apt.confarchivo tenía que verse así:

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

^ ^ ^ ^ Línea en blanco después de la tercera línea proxy, no ingrese esta línea. ^ ^ ^ ^


1

Tuve este mismo problema después de instalar Ubuntu 18.04. Lo que funcionó para mí fue:

  1. Abra la pantalla Proxy de red en la configuración de red
  2. Seleccione Manual y agregue información de proxy http y https
  3. Además, configure el campo Ignorar hosts con:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Ubuntu reiniciado

En cuanto al punto 3, no estoy seguro si agregar la entrada anterior funciona o no, pero este paso funciona para mí


0
  1. Inicie Synaptic (vaya a Sistema -> Administración -> Synaptic en Gnome 2, o escriba "synaptic" en Dash in Unity).
  2. En la barra de menú, haga clic en Configuración , seguido de Preferencias .
  3. Cuando aparezca la ventana de Preferencias, haga clic en la pestaña Red .
  4. Seleccione el botón de opción Configuración manual del proxy e ingrese su información de proxy.
  5. Para aplicar la información de autenticación, haga clic en el botón Autenticación e ingrese nombre de usuario y contraseña.
  6. Haga clic en Aceptar para cerrar la ventana de autenticación HTTP.
  7. Haga clic en Aceptar para cerrar la ventana de Preferencias.
  8. Haga clic en el botón Recargar para actualizar las listas de paquetes.

Tenga en cuenta que este cambio de configuración también afectará al Administrador de actualizaciones .


0

Esta solución única funcionó para mí:

sudo env http_proxy=http://<ip>:<port> apt-get update
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.