Respuestas:
Una posible solución puede ser usar tsocks
una aplicación que pueda redirigir el tráfico de red a través de un proxy de calcetines. Instale el tsocks
paquete, modifíquelo /etc/tsocks.conf
para establecer la dirección y el número de puerto de su proxy de calcetines, y ejecute:
$ sudo -s
# tsocks apt-get update
# tsocks apt-get dist-upgrade
# exit
$
o
$ sudo -s
# . tsocks -on
# apt-get update
# apt-get dist-upgrade
# . tsocks -off # not really necessary, given the exit
# exit
$
Puede pensar en varias opciones para simplificar y automatizar su uso.
No olvide el punto inicial , la página de manual tiene más detalles sobre esto.
Editar : una forma más corta de usarlo:
$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
tsocks
, instalarlo y luego usar :)
Acquire::http::Proxy "socks5h://hostname:port/"
. Vea el registro de cambios en anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
apt-get something
!
Acquire::socks::Proxy "socks5h://hostname:port/";
hace el truco. Http no lo hace : pruébelo con Tor y verá una respuesta estándar "Tor no es un proxy http", por lo que http
se reemplaza por socks
- ¡y funciona!
Acquire::http::proxy "socks5h://server:port";
Esto funciona para mí en Ubuntu 18.04. Como dice la página del manual, apt5 admite socks5h, no socks5, lo que significa proxy socks5 con capacidad de resolución de DNS.
Acquire::https::proxy "socks5h://server:port";
a un apt.conf.d
archivo (como /etc/apt/apt.conf.d/12proxy
) funciona bien. Sugeriría seguir https a menos que sea necesario.
Acquire::http::proxy "socks5h://user:pass@server:port";
. La regla anterior funciona bien en Ubuntu 18.04. Aquí socks5h
impone la resolución de DNS en el servidor proxy.
Usar la siguiente línea de configuración me funciona:
Acquire::socks::proxy "socks5://server:port";
Para mantenerme apt.conf
limpio y evitar problemas en la actualización de Linux, creé un nuevo archivo ( /etc/apt/apt.conf.d/12proxy
) y le agregué el archivo de configuración.
No pude encontrar nada en Acquire :: socks :: proxy en el manual apt.conf de Ubuntu Xenial. Puede solucionar esto ejecutando un proxy http local que admita el proxy de socks aguas arriba, por ejemplo Polipo. Debe configurar Polipo de la siguiente manera:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "sockshost:socksport"
socksProxyType = socks5
y luego configure el proxy http en su archivo apt.conf:
Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
O puede poner en su /etc/apt/apt.conf algo como esto:
Acquire::socks::proxy "socks://user:pass@host:port/";
Acquire::http::proxy "socks://user:pass@host:port/";
Acquire::socks
es para configurar el proxy para las URL que comienzan con socks://
. Por lo que significa que no necesita un proxy para acceder a Internet, y apt
no utiliza ningún sustituto de ftp://
, http://
o https://
.. apt
sólo es compatible con servidores proxy HTTP, es decir Acquire::http::proxy "http://localhost:8118
.
En Debian, puede leer la página de manual apt-transport-http(1)
y buscar esquemas de URI compatibles. Como se respondió antes, poner
Acquire::http::proxy "socks5h://server:port";
en
/etc/apt/apt.conf.d/12proxy
Puede leer más sobre APT-config en general apt.conf(5)
y leer los ejemplos /usr/share/doc/apt/examples/configure-index.gz
mencionados al final de la página de manual.
Esto se puede combinar ssh -D <LOCAL PORT> <USER>@<HOST>
para crear un proxy SOCKS en un sistema diferente para que apt pueda usar el proxy como si todo se hubiera originado <HOST>
.
Si usa ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>
o ssh -D [::]:<LOCAL PORT> <USER>@<HOST>
(para IPv6) para permitir que otros sistemas usen el proxy SOCKS en todas las interfaces. Esto puede ser un riesgo de seguridad o una violación de la política (corporativa). Asegúrate de saber lo que estás haciendo.
sudo tsocks apt-get install tsocks
. Jajajajajaja ...