SOCKS5-Konfigurator für Linux: proxychains, redsocks und Per-App-Routing
Linux hat keinen einzigen SOCKS5-Schalter, aber du kannst pro App mit proxychains, transparent mit redsocks oder über Umgebungsvariablen routen. Hier erfährst du, wie du jedes davon konfigurierst, DNS überprüfst und Leaks vermeidest.
Die Suche nach einem "SOCKS5-Konfigurator" unter Linux führt oft zu Verwirrung: Es gibt in GNOME oder KDE keinen systemweiten SOCKS5-Schalter wie für HTTP-Proxys. Stattdessen bietet Linux flexible Bausteine. Dieser Leitfaden behandelt die praktischen Möglichkeiten, den Datenverkehr unter Linux durch einen SOCKS5-Proxy zu leiten – pro App, transparent und für bestimmte CLI-Tools – mit Code, den du anpassen kannst.
Wie SOCKS5 unter Linux funktioniert (und warum DNS wichtig ist)
SOCKS5 ist ein generisches Proxy-Protokoll, das TCP-Verbindungen verarbeiten kann (und UDP mit einigen Erweiterungen, aber die meisten Implementierungen bleiben bei TCP). Unter Linux ist der entscheidende Unterschied zwischen socks5 und socks5h:
socks5://löst DNS lokal auf deinem Rechner auf und sendet dann die IP an den Proxy.socks5h://sendet den Hostnamen an den Proxy, der ihn remote auflöst.
Für geobeschränkte Inhalte oder zur Vermeidung von DNS-Leaks ist socks5h normalerweise die richtige Wahl. Wenn dein Proxy-Anbieter dir einen SOCKS5-Endpunkt gibt, kannst du oft remote DNS erzwingen, indem du die h-Variante oder eine Einstellung wie "Proxy DNS when using SOCKS v5" in Firefox verwendest.
Per-App-Routing mit proxychains
proxychains-ng ist der gepflegte Fork des klassischen proxychains-Tools. Es verwendet LD_PRELOAD, um Netzwerkaufrufe von dynamisch gelinkten Programmen abzufangen und durch deinen Proxy zu leiten. Es ist das nächste Linux-Äquivalent zu Proxifier unter Windows oder macOS, funktioniert aber unter der Haube anders.
Installiere es unter Debian/Ubuntu:
sudo apt install proxychains4
Unter Arch:
sudo pacman -S proxychains-ng
Bearbeite die Konfigurationsdatei (normalerweise /etc/proxychains4.conf oder ~/.proxychains/proxychains.conf). Definiere am Ende deinen Proxy:
[ProxyList]
socks5 127.0.0.1 1080
Wenn dein Proxy eine Authentifizierung erfordert:
socks5 203.0.113.10 1080 username password
Um DNS durch den Proxy zu leiten, lass die Zeile proxy_dns in der Konfiguration nicht auskommentiert. Dadurch verwendet proxychains remote DNS, ähnlich wie socks5h.
Führe jeden Befehl durch den Proxy aus:
proxychains4 curl https://ifconfig.me
proxychains4 firefox
Hinweis: proxychains funktioniert nicht mit statisch gelinkten Binärdateien, setuid-Binärdateien oder Anwendungen, die Raw-Socket-Aufrufe machen. Es leitet standardmäßig auch keinen UDP-Verkehr weiter. Für diese Fälle ziehe den transparenten Proxy-Ansatz unten in Betracht.
Transparenter Proxy mit redsocks
Wenn du den gesamten TCP-Verkehr (oder bestimmte Ports) ohne Pro-App-Konfiguration durch einen SOCKS5-Proxy leiten möchtest, kann redsocks Verbindungen auf Kernel-Ebene umleiten. Das ist komplexer und kann dein Netzwerk beschädigen, wenn es falsch konfiguriert wird, also sei vorsichtig.
Installiere redsocks:
sudo apt install redsocks
Erstelle eine Konfigurationsdatei, zum Beispiel /etc/redsocks.conf:
redsocks {
local_ip = 127.0.0.1;
local_port = 12345;
ip = 203.0.113.10;
port = 1080;
type = socks5;
login = "username";
password = "password";
}
Verwende dann iptables, um ausgehenden TCP-Verkehr an den lokalen redsocks-Port umzuleiten. Zum Beispiel, um den gesamten TCP-Verkehr außer lokalen Netzwerken umzuleiten:
sudo iptables -t nat -N REDSOCKS
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
Diese Einrichtung leitet ausgehendes TCP von der lokalen Maschine um. Passe die Regeln an deine Bedürfnisse an (z. B. bestimmte Benutzer oder Ziele ausschließen). Denke daran, dass DNS oft UDP ist; redsocks kann TCP-DNS verarbeiten, aber für UDP benötigst du möglicherweise zusätzliche Konfiguration. Viele Benutzer kombinieren redsocks mit einem lokalen DNS-Resolver wie dnscrypt-proxy oder unbound, um Leaks zu vermeiden.
Umgebungsvariablen und CLI-Tools
Viele Kommandozeilen-Tools respektieren Umgebungsvariablen wie http_proxy, https_proxy und all_proxy. Für SOCKS5 ist all_proxy mit dem socks5h-Schema am zuverlässigsten:
export all_proxy=socks5h://127.0.0.1:1080
curl https://ifconfig.me
Einige Tools berücksichtigen auch http_proxy und https_proxy mit einer socks5://-URL, aber die Unterstützung variiert. Für bestimmte Tools konfiguriere sie direkt:
- curl: verwende
--socks5-hostname 127.0.0.1:1080(äquivalent zusocks5h). - git:
git config --global http.proxy socks5h://127.0.0.1:1080 - SSH: Verwende dynamische Weiterleitung, um einen lokalen SOCKS-Proxy zu erstellen:
ssh -D 1080 -N user@remote-host. Richte dann andere Tools auf127.0.0.1:1080aus.
Browser-Konfiguration unter Linux
Firefox hat eine hervorragende SOCKS5-Unterstützung. Gehe zu Einstellungen → Netzwerkeinstellungen → Manuelle Proxy-Konfiguration, setze den SOCKS-Host auf 127.0.0.1 und den Port auf 1080, wähle SOCKS v5 und aktiviere "Proxy-DNS bei Verwendung von SOCKS v5". Dadurch verwendet Firefox remote DNS.
Chrome und Chromium unter Linux können mit einem Proxy-Flag gestartet werden:
google-chrome --proxy-server="socks5://127.0.0.1:1080"
Dieser proxyt DNS jedoch standardmäßig nicht. Chrome löst Hostnamen lokal auf, was DNS leaken kann. Um remote DNS zu erzwingen, kannst du --host-resolver-rules oder eine Proxy-Erweiterung verwenden, die SOCKS5 mit remote DNS unterstützt. Alternativ kannst du einen systemweiten transparenten Proxy wie redsocks verwenden, um Pro-Browser-Flags zu vermeiden.
Überprüfen deiner Einrichtung und Prüfen auf Leaks
Nach der Konfiguration solltest du immer überprüfen, ob der Datenverkehr durch den Proxy läuft und ob DNS nicht leakt. Schnelle Checks:
- Scheinbare IP:
curl https://ifconfig.meodercurl https://ipinfo.io/ip. (Wenn du proxychains verwendest, mitproxychains4davor.) - DNS-Leak-Test: Besuche eine Seite wie
dnsleaktest.comin deinem Browser und prüfe, ob die DNS-Server zu deinem ISP oder deinem Proxy-Anbieter gehören. - WebRTC-Leaks: In Browsern kann WebRTC deine echte IP preisgeben. Deaktiviere WebRTC oder verwende bei Bedarf eine Erweiterung, um es zu blockieren.
- Terminal-DNS-Check:
dig +short example.comverwendet deinen System-Resolver, es sei denn, du hast proxychains oder einen lokalen DNS-Forwarder konfiguriert. Um zu sehen, ob DNS über den Proxy läuft, vergleiche die Ergebnisse mit und ohne Proxy.
Häufige Fallstricke und wie du sie vermeidest
socks5://verwenden, wenn dusocks5h://brauchst: Dies ist die häufigste Ursache für DNS-Leaks. Wenn dein Tool es unterstützt, verwende immer dieh-Variante.- Annehmen, dass alle Apps proxychains respektieren: Statisch gelinkte Binärdateien und einige sandboxed Apps umgehen
LD_PRELOAD. Teste jede App, die du brauchst. - UDP und QUIC vergessen: SOCKS5-Proxys verarbeiten normalerweise nur TCP. QUIC (von HTTP/3 verwendet) läuft über UDP und kann deinen Proxy umgehen. Deaktiviere QUIC in deinem Browser, wenn du absolute Konsistenz brauchst.
- IPv6-Leaks: Wenn dein Proxy nur IPv4 unterstützt, kann IPv6-Verkehr direkt hinausgehen. Deaktiviere IPv6 oder leite es durch den Proxy, wenn unterstützt.
- Schleifen beim transparenten Proxy: Sei bei redsocks vorsichtig, keinen Verkehr umzuleiten, den der Proxy selbst benötigt (z. B. Verkehr zur IP des Proxy-Servers). Verwende Ausschlussregeln.
Abschließendes Fazit
Linux bietet keinen Ein-Klick-SOCKS5-Konfigurator, aber das ist ein Feature, kein Bug. Du kannst Pro-App-Routing mit proxychains, transparente Umleitung mit redsocks oder einfache Umgebungsvariablen für CLI-Tools wählen. Wähle die Methode, die zu deinem Workflow passt, und überprüfe dann DNS und Leaks, bevor du ihr sensiblen Verkehr anvertraust.