sintaxe para o proxy SOCKS no apt.conf

23

Quero adicionar as configurações de proxy do SOCKS ao /etc/apt/apt.conf. Qual é a sintaxe para isso? É o mesmo que sintaxe http e ftp?

Obrigado.

Ubuntuser
fonte

Respostas:

31

Uma solução possível pode ser usar tsocksum aplicativo que possa redirecionar o tráfego da rede através de um proxy de meias. Instale o tsockspacote, modifique /etc/tsocks.confpara 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
enzotib
fonte
11
Parece que tsocks não está instalado por padrão, então eu preciso executar sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n 12/04
1
Você pode usar curl para baixar tsocks, instalá-lo e, em seguida, usar :)
neutrinus
3
Também: A partir do apt 1.3 ~ rc1 (versão Debian, não sei exatamente qual versão do Ubuntu, embora meu palpite não seja até Zesty), você pode usá-lo Acquire::http::Proxy "socks5h://hostname:port/". Veja o changelog em anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
derobert
1
Bem ... isso é engraçado. Para fazer o apt-get funcionar, você precisa ... apt-get something!
Equidamóide
2
uma pequena correção na linha @derobert: 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 httpsubstituição é feita por socks- e funciona!
Alexey Vesnin
17
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.

苏永刚
fonte
1
Isso está correto e, de fato, parece funcionar no Ubuntu 18.04. Embora se queira incluir Acquire :: https :: proxy e Acquire :: ftp :: proxy também (com o mesmo valor).
Hamy 1/03
1
adicionar regra de proxy Acquire::https::proxy "socks5h://server:port";a um apt.conf.darquivo (como /etc/apt/apt.conf.d/12proxy) funciona perfeitamente. Eu sugeriria manter o https, a menos que seja necessário.
codegenki
Também para um servidor proxy que requer autenticação, esta linha é modificada como Acquire::http::proxy "socks5h://user:pass@server:port";. A regra acima funciona muito bem no Ubuntu 18.04. Aqui socks5himpõe a resolução de DNS no servidor proxy.
codegenki
Alguém sabe se isso funciona no Ubuntu 16.04?
becko 18/06
não funciona em 14.04
razieh babaee 6/07
8

Usar a próxima linha de configuração funciona para mim:

Acquire::socks::proxy "socks5://server:port";

Para me manter apt.conflimpo 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.

Bit-Man
fonte
qual é o número médio começam na foler
Kris Roofe
É apenas a ordem de execução do script
Bit-Man
Isto está errado. Isso não funciona.
dedunumax 7/09/18
O que falhou com você @dedunumax? Algum erro? Qualquer pista?
Bit-Man
1
Deve ser Adquirir :: http :: proxy e também socks5 h para resolução de DNS no lado do proxy
ZAB
4

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/";
Mos
fonte
3

Ou tou pode colocar no seu /etc/apt/apt.conf algo como isto:

Acquire::socks::proxy "socks://user:pass@host:port/";
mrkbbk
fonte
2
Isso não parece funcionar no Ubuntu 12.04
Shnatsel 16/10
Trabalhos em 13.10.
Isaaclw
4
Tenho certeza de que esta sintaxe está errada, significa "proxy todos os URLs que começam com socks: // through socks: // user: pass @ host: port /". Realmente, deve ser o seguinte: #:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner
@ Hans-ChristophSteiner: Isso faz uma conexão com o host e a porta indicados, mas a conexão não usa o protocolo socks. Parece um protocolo de proxy http, mas não verifiquei com um proxy http real.
Seth Robertson
Neste ponto, tenho certeza de que 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 aptnão está usando qualquer proxy para ftp://, http://ou https://.. aptsó suporta HTTP proxies, ou seja Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner
0

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.gzmencionados 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.

AdamKalisz
fonte