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.

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

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.


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.


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/";

3

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

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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.