Syntax für SOCKS-Proxy in apt.conf

23

Ich möchte SOCKS-Proxyeinstellungen zu /etc/apt/apt.conf hinzufügen. Was ist die Syntax dafür? Entspricht es der http- und ftp-Syntax?

Vielen Dank.

Ubuntuser
quelle

Antworten:

31

Eine mögliche Lösung kann die Verwendung tsockseiner Anwendung sein, die den Netzwerkverkehr über einen Socks-Proxy umleiten kann. Installieren Sie das tsocksPaket, ändern Sie es , um /etc/tsocks.confdie Adresse und die Portnummer Ihres Socks-Proxys festzulegen, und führen Sie Folgendes aus:

$ sudo -s
# tsocks apt-get update
# tsocks apt-get dist-upgrade
# exit
$

oder

$ sudo -s
# . tsocks -on
# apt-get update
# apt-get dist-upgrade
# . tsocks -off # not really necessary, given the exit
# exit
$

Sie können sich eine Reihe von Optionen überlegen, um deren Verwendung zu vereinfachen und zu automatisieren.
Vergessen Sie nicht den führenden Punkt, die Manpage hat mehr Details dazu.

Bearbeiten : eine kürzere Möglichkeit, es zu verwenden:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
Enzotib
quelle
11
Es scheint, dass tsocks nicht standardmäßig installiert ist, also muss ich ausführen sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n
1
Sie können curl verwenden tsocks, um es herunterzuladen , zu installieren und dann zu verwenden :)
neutrinus
3
Außerdem: Ab apt 1.3 ~ rc1 (Debian-Version, nicht sicher, welche Ubuntu-Version genau, obwohl ich es nicht für Zesty halte) können Sie verwenden Acquire::http::Proxy "socks5h://hostname:port/". Siehe das Changelog unter anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
derobert
1
Na ja ... das ist lustig. Damit alles funktioniert, müssen Sie ... apt-get something!
Equidamoid
2
eine kleine korrektur an @derobert line: Acquire::socks::Proxy "socks5h://hostname:port/";macht den trick. Http nicht - versuchen Sie es mit Tor und Sie werden eine Standardantwort sehen "Tor ist kein http-Proxy", also wird das httpdurch ersetzt socks- und es funktioniert!
Alexey Vesnin
17
Acquire::http::proxy "socks5h://server:port";

Das funktioniert bei mir unter Ubuntu 18.04. Wie die Manpage sagt, wird socks5h, nicht socks5, von apt unterstützt, was bedeutet, dass socks5-Proxy DNS-fähig ist.

苏永刚
quelle
1
Dies ist richtig und scheint in der Tat auf Ubuntu 18.04 zu funktionieren. Möglicherweise möchten Sie jedoch auch Acquire :: https :: proxy und Acquire :: ftp :: proxy (mit demselben Wert) einbeziehen .
Hamy
1
Das Hinzufügen einer Proxy-Regel Acquire::https::proxy "socks5h://server:port";zu einer apt.conf.dDatei (wie /etc/apt/apt.conf.d/12proxy) funktioniert einwandfrei. Ich würde empfehlen, sich an https zu halten, sofern nicht anders erforderlich.
codegenki
Auch für einen Proxy-Server, der eine Authentifizierung erfordert, wird diese Zeile als geändert Acquire::http::proxy "socks5h://user:pass@server:port";. Die obige Regel funktioniert in Ubuntu 18.04 einwandfrei. Hier wird socks5hdie DNS-Auflösung auf dem Proxy-Server erzwungen.
codegenki
Weiß jemand, ob dies in Ubuntu 16.04 funktioniert?
Becko
funktioniert nicht am 14.04
razieh babaee
8

Die Verwendung der nächsten Konfigurationszeile funktioniert für mich:

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

Um apt.confsauber zu bleiben und Probleme beim Linux-Upgrade zu vermeiden, habe ich eine neue Datei ( /etc/apt/apt.conf.d/12proxy) erstellt und die Konfigurationsdatei hinzugefügt.

Bit-Man
quelle
Was bedeutet die Anfangszahl im Ordner?
Kris Roofe
Es ist nur die Reihenfolge der Skriptausführung
Bit-Man
Das ist falsch. Das geht nicht.
Dedunumax
Was ist dir bei @dedunumax misslungen? Irgendein Fehler? Irgendeine Ahnung?
Bit-Man
1
Es sollte Acquire :: http :: proxy und auch socks5 h für DNS-Auflösung auf der Proxy-Seite sein
ZAB
4

Ich konnte auf Acquire :: socks :: proxy im Handbuch apt.conf von Ubuntu Xenial nichts finden . Sie können dies beheben, indem Sie einen lokalen HTTP-Proxy ausführen, der den Upstream-Socks-Proxy unterstützt, z. B. Polipo. Sie müssen Polipo wie folgt konfigurieren:

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

und stellen Sie dann den http-Proxy in Ihrer apt.conf-Datei ein:

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

Oder tou kann in deine /etc/apt/apt.conf so etwas einfügen:

Acquire::socks::proxy "socks://user:pass@host:port/";
mrkbbk
quelle
2
Dies scheint in Ubuntu 12.04
Shnatsel 16.10.13
Funktioniert in 13.10.
isaaclw
4
Ich bin mir ziemlich sicher, dass dies eine falsche Syntax ist. Sie bedeutet "Proxy aller URLs, die mit socks: // durch socks: // user: pass @ host: port / beginnen". Eigentlich sollte es so sein:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner
@ Hans-ChristophSteiner: Damit wird eine Verbindung zum angegebenen Host und Port hergestellt, die Verbindung verwendet jedoch nicht das Socks-Protokoll. Es sieht aus wie ein http-Proxy-Protokoll, aber ich habe es nicht mit einem tatsächlichen http-Proxy überprüft.
Seth Robertson
An dieser Stelle bin ich sicher, dass dies Acquire::sockszum Festlegen des Proxys für URLs dient, die mit beginnen socks://. Das heißt also Sie nicht über einen Proxy müssen auf das Internet zuzugreifen, und aptverwendet keine Proxy für ftp://, http://oder https://.. aptunterstützt nur HTTP - Proxies, dh Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner
0

In Debian können Sie die Manpage lesen apt-transport-http(1)und nach unterstützten URI-Schemata suchen. Wie vorher geantwortet wurde, setzen

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

im

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

Weitere Informationen zur APT-Konfiguration finden Sie in apt.conf(5)und in den Beispielen /usr/share/doc/apt/examples/configure-index.gzam Ende der Hilfeseite.

Dies kann kombiniert werden ssh -D <LOCAL PORT> <USER>@<HOST>, um einen SOCKS-Proxy für ein anderes System zu erstellen, so dass apt den Proxy dann so verwenden kann, als ob alles auf dem Server entstanden wäre <HOST>.

Wenn Sie ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>oder ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(für IPv6) verwenden, um anderen Systemen die Verwendung des SOCKS-Proxys auf allen Schnittstellen zu ermöglichen. Dies kann ein Sicherheitsrisiko oder ein Verstoß gegen (Unternehmens-) Richtlinien sein. Stellen Sie sicher, dass Sie wissen, was Sie tun.

AdamKalisz
quelle