¿Cómo usar "apt-get" a través de "Http-proxy" como este?


20

Estoy tratando de usar el apt-getcomando en una red que usa un proxy, como este:

Usamos 10.114.7.7 en el puerto 80 como proxy HTTP, y luego aparece una ventana de autenticación que solicita nombre de usuario y contraseña.

Nuestro nombre de usuario / dominio es así: username@urmia.ac.ir

Me pregunto, ¿cómo puedo usar http_proxy=http://User:Pass@Proxyserver:Porten esta situación? También probé ambos, 10.114.7.7 y urmia.ac.ir como servidor proxy, ¡pero ningún resultado!

Respuestas:


35

Para usar apt-get a través de un proxy, cree un archivo /etc/apt/apt.conf.d/llamado proxy o algo que reconocerá, o cree (si no existe) /etc/apt/apt.confe inserte la siguiente línea:

Acquire::http::Proxy "http://username:password@proxy.server:port/";

Simplemente reemplace el nombre de usuario y la contraseña con sus datos de inicio de sesión, y reemplace proxy.server: puerto con la dirección correcta (en su caso, 10.114.7.7:80), para que su línea termine de la siguiente manera:

Acquire::http::Proxy "http://username:password@10.114.7.7:80";

Si debe usar el @símbolo en su nombre de usuario, tendrá que escapar con una barra invertida ( username@urmia.ac.ir)

Si bien el escape de caracteres mediante el uso de la reacción no funciona (por ejemplo, \@en exporty wget), se pueden escapar caracteres especiales con codificación de URL. Por ejemplo, se username:my@pass@server.com:portconvierte username:my%40pass@server.com:port. Consulte esta lista de caracteres codificados en URL para obtener más información.


La solución propuesta para agregar una entrada de proxy dentro de / etc / apt funcionó para mí, pero observo que si su servidor proxy almacena en caché las credenciales, puede evitar incrustar sus credenciales en el archivo de configuración simplemente autenticándose a través de su servidor proxy en un proceso diferente ( por ejemplo, navegador web en Windows), antes de ejecutar los comandos apt en su shell bash. Al hacer esto, pude especificar la entrada de proxy dentro de / etc / apt como " servidor: puerto " en lugar de " nombre de usuario: contraseña @ servidor: puerto ".
Peter Sanza

6

Alternativamente, puede colocar lo siguiente en /etc/apt/apt.conf

Acquire::http::Proxy "http://proxy.server.port:8080";

8080 es el número de puerto y creo que es estándar.

No olvide las comillas o el punto y coma final.


4

Esto debería solucionar tu problema:

export http_proxy=http://username:password@10.114.7.7:80/

EXPORT HTTP_proxy=http://username:password@10.114.7.7:80/ejecutar en Bash resulta en EXPORT: command not found.
David Foerster

Tanto exportar como http en minúsculas. Bash distingue entre mayúsculas y minúsculas. De lo contrario, debería funcionar. Al menos me ha funcionado durante dos años.
s3lph

66
funciona para curl, pero no para apt.
MGF
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.