syntaxe du proxy SOCKS dans apt.conf

23

Je veux ajouter les paramètres du proxy SOCKS à /etc/apt/apt.conf. Quelle en est la syntaxe? Est-ce la même que la syntaxe http et ftp?

Merci.

Ubuntuser
la source

Réponses:

31

Une solution possible peut être d'utiliser tsocks, une application qui peut rediriger le trafic réseau via un proxy de chaussettes. Installez le tsockspackage, modifiez /etc/tsocks.confpour définir l'adresse et le numéro de port de votre proxy socks, et exécutez:

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

Vous pouvez penser à un certain nombre d'options, pour simplifier et automatiser son utilisation.
N'oubliez pas le premier point, la page de manuel contient plus de détails à ce sujet.

Edit : une façon plus courte de l'utiliser:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
enzotib
la source
11
Il semble que tsocks ne soit pas installé par défaut, je dois donc exécuter sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n
1
Vous pouvez utiliser curl pour le télécharger tsocks, l'installer puis utiliser :)
neutrinus
3
Aussi: Depuis apt 1.3 ~ rc1 (version Debian, je ne sais pas exactement quelle version d'Ubuntu, bien que je suppose que ce n'est pas avant Zesty), vous pouvez utiliser Acquire::http::Proxy "socks5h://hostname:port/". Voir le changelog sur anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
derobert
1
Eh bien ... c'est drôle. Pour faire travailler apt-get, vous devez ... apt-get something!
Equidamoid
2
une petite correction à la ligne @derobert: Acquire::socks::Proxy "socks5h://hostname:port/";fait l'affaire. Http ne le fait pas - essayez-le avec Tor et vous verrez une réponse standard "Tor n'est pas un proxy http", donc le httpva remplacé par socks- et cela fonctionne!
Alexey Vesnin
17
Acquire::http::proxy "socks5h://server:port";

Cela fonctionne pour moi sur Ubuntu 18.04. Comme le dit la page de manuel, socks5h, et non socks5, est pris en charge par apt, ce qui signifie un proxy socks5 avec une capacité de résolution DNS.

苏永刚
la source
1
C'est correct et semble effectivement fonctionner sur Ubuntu 18.04. Bien que l'on puisse vouloir inclure Acquire :: https :: proxy et Acquire :: ftp :: proxy également (avec la même valeur).
Hamy
1
l'ajout Acquire::https::proxy "socks5h://server:port";d'une règle de proxy à un apt.conf.dfichier (comme /etc/apt/apt.conf.d/12proxy) fonctionne très bien. Je suggère de s'en tenir à https, sauf indication contraire.
codegenki
Également pour un serveur proxy nécessitant une authentification, cette ligne est modifiée en tant que Acquire::http::proxy "socks5h://user:pass@server:port";. La règle ci-dessus fonctionne très bien dans Ubuntu 18.04. Ici, la socks5hrésolution DNS est appliquée au serveur proxy.
codegenki
Quelqu'un sait si cela fonctionne dans Ubuntu 16.04?
Becko
ne fonctionne pas le 14.04
razieh babaee
8

L'utilisation de la prochaine ligne de configuration fonctionne pour moi:

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

Pour rester apt.confpropre et éviter les problèmes lors de la mise à niveau de Linux, j'ai créé un nouveau fichier ( /etc/apt/apt.conf.d/12proxy) et y ai ajouté le fichier de configuration.

Bit-Man
la source
quel est le nombre de début signifie dans le foler
Kris Roofe
C'est juste l'ordre d'exécution du script
Bit-Man
C'est faux. Ça ne marche pas.
dedunumax
Qu'est-ce qui vous a manqué @dedunumax? Une erreur? Un indice?
Bit-Man
1
Il devrait être Acquire :: http :: proxy et également socks5 h pour la résolution DNS du côté proxy
ZAB
4

Je n'ai rien trouvé sur Acquire :: socks :: proxy dans le manuel apt.conf d'Ubuntu Xenial. Vous pouvez résoudre ce problème en exécutant un proxy http local qui prend en charge le proxy de chaussettes en amont, par exemple Polipo. Vous devez configurer Polipo comme suit:

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

puis définissez le proxy http dans votre fichier apt.conf:

Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
Mos
la source
3

Ou vous pouvez mettre quelque chose comme ceci dans votre /etc/apt/apt.conf:

Acquire::socks::proxy "socks://user:pass@host:port/";
mrkbbk
la source
2
Cela ne semble pas fonctionner dans Ubuntu 12.04
Shnatsel
Fonctionne en 13.10.
isaaclw
4
Je suis sûr que c'est une mauvaise syntaxe, cela signifie "proxy toutes les URL qui commencent par socks: // à socks: // user: pass @ host: port /". Vraiment, ça devrait être ça:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner
@ Hans-ChristophSteiner: Cela établit une connexion avec l'hôte et le port indiqués, mais la connexion n'utilise pas le protocole socks. Il ressemble à un protocole proxy http, mais je n'ai pas vérifié avec un proxy http réel.
Seth Robertson
À ce stade, je suis sûr que Acquire::socksc'est pour définir le proxy pour les URL qui commencent par socks://. Donc , cela signifie que vous ne pas besoin d' un proxy pour accéder à Internet, et aptn'utilise pas de proxy pour ftp://, http://ou https://.. aptne supporte que HTTP proxy, par exemple Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner du
0

Dans Debian, vous pouvez lire la page de manuel apt-transport-http(1)et rechercher les schémas d'URI pris en charge. Comme il a été répondu précédemment, mettez

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

dans

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

Vous pouvez en savoir plus sur APT-config en général dans apt.conf(5)et lire les exemples /usr/share/doc/apt/examples/configure-index.gzmentionnés à la fin de la page de manuel.

Ceci peut être combiné avec ssh -D <LOCAL PORT> <USER>@<HOST>pour créer un proxy SOCKS vers un système différent afin qu'apt puisse ensuite utiliser le proxy comme si tout était originaire <HOST>.

Si vous utilisez ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>ou ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(pour IPv6) pour permettre à d'autres systèmes d'utiliser le proxy SOCKS sur toutes les interfaces. Cela peut être un risque pour la sécurité ou une violation de la politique (d'entreprise). Assurez-vous de savoir ce que vous faites.

AdamKalisz
la source