Respostas:
Uma solução possível pode ser usar tsocks
um aplicativo que possa redirecionar o tráfego da rede através de um proxy de meias. Instale o tsocks
pacote, modifique /etc/tsocks.conf
para definir o endereço e o número da porta do seu proxy de meias e execute:
$ sudo -s
# tsocks apt-get update
# tsocks apt-get dist-upgrade
# exit
$
ou
$ sudo -s
# . tsocks -on
# apt-get update
# apt-get dist-upgrade
# . tsocks -off # not really necessary, given the exit
# exit
$
Você pode pensar em várias opções, para simplificar e automatizar seu uso.
Não se esqueça do ponto principal, a Manpage tem mais detalhes sobre isso.
Edit : uma maneira mais curta de usá-lo:
$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
tsocks
, instalá-lo e, em seguida, usar :)
Acquire::http::Proxy "socks5h://hostname:port/"
. Veja o changelog em anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
apt-get something
!
Acquire::socks::Proxy "socks5h://hostname:port/";
faz o truque. Http não - tente com o Tor e você verá uma resposta padrão "O Tor não é um proxy http", portanto, a http
substituição é feita por socks
- e funciona!
Acquire::http::proxy "socks5h://server:port";
Isso funciona para mim no Ubuntu 18.04. Como a página de manual diz, socks5h, não socks5, é suportado pelo apt, o que significa proxy socks5 com capacidade de resolução de DNS.
Acquire::https::proxy "socks5h://server:port";
a um apt.conf.d
arquivo (como /etc/apt/apt.conf.d/12proxy
) funciona perfeitamente. Eu sugeriria manter o https, a menos que seja necessário.
Acquire::http::proxy "socks5h://user:pass@server:port";
. A regra acima funciona muito bem no Ubuntu 18.04. Aqui socks5h
impõe a resolução de DNS no servidor proxy.
Usar a próxima linha de configuração funciona para mim:
Acquire::socks::proxy "socks5://server:port";
Para me manter apt.conf
limpo e evitar problemas na atualização do Linux, criei um novo arquivo ( /etc/apt/apt.conf.d/12proxy
) e adicionei o arquivo de configuração.
Não encontrei nada no Acquire :: socks :: proxy no manual apt.conf do Ubuntu Xenial. Você pode corrigir isso executando um proxy http local que suporte o proxy de meias upstream, por exemplo, Polipo. Você precisa configurar o Polipo da seguinte maneira:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "sockshost:socksport"
socksProxyType = socks5
e defina o proxy http no seu arquivo apt.conf:
Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
Ou tou pode colocar no seu /etc/apt/apt.conf algo como isto:
Acquire::socks::proxy "socks://user:pass@host:port/";
Acquire::http::proxy "socks://user:pass@host:port/";
Acquire::socks
é para definir o proxy para URLs que começam com socks://
. Então isso significa que você não precisa de um proxy para acessar a internet, e apt
não está usando qualquer proxy para ftp://
, http://
ou https://
.. apt
só suporta HTTP proxies, ou seja Acquire::http::proxy "http://localhost:8118
.
No Debian, você pode ler a página de manual apt-transport-http(1)
e procurar esquemas de URI suportados. Como foi respondido antes, coloque
Acquire::http::proxy "socks5h://server:port";
em
/etc/apt/apt.conf.d/12proxy
Você pode ler mais sobre o APT-config em geral apt.conf(5)
e ler os exemplos /usr/share/doc/apt/examples/configure-index.gz
mencionados no final da página de manual.
Isso pode ser combinado com ssh -D <LOCAL PORT> <USER>@<HOST>
a criação de um proxy SOCKS para um sistema diferente, para que o apt possa usá-lo como se tudo tivesse sido originado <HOST>
.
Se você usar ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>
ou ssh -D [::]:<LOCAL PORT> <USER>@<HOST>
(para IPv6) permitir que outros sistemas usem o proxy SOCKS em todas as interfaces. Isso pode ser um risco à segurança ou uma violação da política (corporativa). Certifique-se de saber o que está fazendo.
sudo tsocks apt-get install tsocks
. Hahahahahaha ...