sintassi per il proxy SOCKS in apt.conf


23

Voglio aggiungere le impostazioni del proxy SOCKS a /etc/apt/apt.conf. Qual è la sintassi per questo? È uguale alla sintassi http e ftp?

Grazie.

Risposte:


31

Una possibile soluzione può essere l'uso tsocks, un'applicazione in grado di reindirizzare il traffico di rete attraverso un proxy di calzini. Installa il tsockspacchetto, modifica /etc/tsocks.confper impostare l'indirizzo e il numero di porta del proxy socks ed esegui:

$ 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
$

Puoi pensare a una serie di opzioni, per semplificare e automatizzare il suo utilizzo.
Non dimenticare il punto iniziale, la Manpage ha più dettagli su questo.

Modifica : un modo più breve per usarlo:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade

11
Sembra che tsocks non sia installato di default, quindi devo eseguirlo sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n,

1
Puoi usare curl per scaricare tsocks, installarlo e poi usare :)
neutrinus

3
Inoltre: A partire da apt 1.3 ~ rc1 (versione Debian, non sono sicuro di quale versione di Ubuntu, anche se la mia ipotesi non è fino a Zesty), è possibile utilizzare Acquire::http::Proxy "socks5h://hostname:port/". Guarda il log delle modifiche
derobert

1
Beh ... è divertente. Per far funzionare apt-get devi ... apt-get something!
Equidamoide,

2
una piccola correzione alla linea @derobert: Acquire::socks::Proxy "socks5h://hostname:port/";fa il trucco. Http no - provalo con Tor e vedrai una risposta standard "Tor non è un proxy http", quindi il httprimpiazzo è sostituito da socks- e funziona!
Alexey Vesnin,

17
Acquire::http::proxy "socks5h://server:port";

Questo funziona per me su Ubuntu 18.04. Come dice la pagina man, socks5h, non socks5, è supportato da apt, il che significa proxy socks5 con capacità di risoluzione DNS.


1
Questo è corretto e sembra funzionare su Ubuntu 18.04. Anche se si potrebbe voler includere anche Acquire :: https :: proxy e Acquire :: ftp :: proxy (con lo stesso valore).
Hamy

1
l'aggiunta della regola proxy Acquire::https::proxy "socks5h://server:port";a un apt.conf.dfile (come /etc/apt/apt.conf.d/12proxy) funziona perfettamente. Vorrei suggerire di attenersi a HTTPS se non diversamente necessario.
codegenki

Anche per un server proxy che richiede l'autenticazione, questa riga viene modificata come Acquire::http::proxy "socks5h://user:pass@server:port";. La regola sopra funziona perfettamente in Ubuntu 18.04. Qui socks5happlica la risoluzione DNS sul server proxy.
codegenki

Qualcuno sa se questo funziona in Ubuntu 16.04?
becko,

non funziona il 14.04
razieh babaee il

8

L'uso della riga di configurazione successiva funziona per me:

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

Per mantenere apt.confpulito ed evitare problemi durante l'aggiornamento di Linux ho creato un nuovo file ( /etc/apt/apt.conf.d/12proxy) e aggiunto il file di configurazione ad esso.


qual è il numero iniziale significa nel foler
Kris Roofe,

È solo l'ordine di esecuzione dello script
Bit-Man il

Questo è sbagliato. Questo non funziona
dedunumax,

Cosa ti è sfuggito @dedunumax? Qualche errore? Qualche idea?
Bit-Man

1
Dovrebbe essere Acquire :: http :: proxy e anche socks5 h per la risoluzione DNS sul lato proxy
ZAB

4

Non sono riuscito a trovare nulla su Acquire :: socks :: proxy nel manuale apt.conf di Ubuntu Xenial. È possibile risolvere questo problema eseguendo un proxy http locale che supporta il proxy dei calzini a monte, ad esempio Polipo. Devi configurare Polipo come segue:

proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "sockshost:socksport"
socksProxyType = socks5

e quindi impostare il proxy http nel file apt.conf:

Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";

3

Oppure puoi inserire nel tuo /etc/apt/apt.conf qualcosa del genere:

Acquire::socks::proxy "socks://user:pass@host:port/";

2
Questo non sembra funzionare in Ubuntu 12.04
Shnatsel,

Funziona nel 13.10.
Isaaclw,

4
Sono abbastanza sicuro che questa sia sintassi sbagliata, significa "proxy tutti gli URL che iniziano con socks: // through socks: // user: pass @ host: port /". Davvero, dovrebbe essere questo:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner,

@ Hans-ChristophSteiner: crea una connessione all'host e alla porta indicati, ma la connessione non utilizza il protocollo socks. Sembra un protocollo proxy HTTP, ma non ho verificato con un proxy http reale.
Seth Robertson,

A questo punto, sono sicuro che Acquire::socksserve per impostare il proxy per gli URL che iniziano con socks://. Quindi, questo significa che non è necessario un proxy per accedere a Internet, e aptnon utilizza alcuna proxy per ftp://, http://o https://.. aptsupporta solo HTTP proxy, vale a dire Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner,

0

In Debian, puoi leggere la manpage apt-transport-http(1)e cercare schemi URI supportati. Come è stato risposto prima, mettere

Acquire::http::proxy "socks5h://server:port";

nel

/etc/apt/apt.conf.d/12proxy

Puoi leggere ulteriori informazioni sulla configurazione APT in generale apt.conf(5)e leggere gli esempi /usr/share/doc/apt/examples/configure-index.gzcitati alla fine della manpage.

Questo può essere combinato con ssh -D <LOCAL PORT> <USER>@<HOST>per creare un proxy SOCKS su un sistema diverso in modo tale che apt possa usare il proxy come se tutto fosse originato <HOST>.

Se si utilizza ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>o ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(per IPv6) per consentire ad altri sistemi di utilizzare il proxy SOCKS su tutte le interfacce. Questo può essere un rischio per la sicurezza o una violazione della politica (aziendale). Assicurati di sapere cosa stai facendo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.