Skip to content
Intermediate / 9 min read

So konfigurieren Sie IPRoyal Shadowsocks-Proxys unter Linux für datenschutzorientierten CLI- und Browser-Datenverkehr

Richten Sie IPRoyal Shadowsocks unter Linux mit shadowsocks-libev ein, führen Sie es als systemd-Dienst aus, überprüfen Sie Ihre ausgehende IP und leiten Sie curl-, Git-, Python- und Browser-Datenverkehr über einen lokalen SOCKS5-Proxy.

Linux SOCKS5 Shadowsocks Privatsphäre/Anonymität

Überblick

Shadowsocks ist ein verschlüsseltes Proxy-Protokoll auf SOCKS5-Basis. Unter Linux lauscht ein lokaler Shadowsocks-Client auf 127.0.0.1:1080, verschlüsselt den Datenverkehr und leitet ihn an einen entfernten Shadowsocks-Endpunkt weiter. Dadurch können Sie ausgewählte CLI-Tools, Browser oder System-Datenverkehr über einen IPRoyal Shadowsocks-Endpunkt leiten, ohne Ihren gesamten Netzwerk-Stack zu ändern.

Dieses Tutorial zeigt, wie Sie IPRoyal Shadowsocks-Proxys unter Linux mit shadowsocks-libev konfigurieren, den Client als systemd-Dienst ausführen, Ihre ausgehende IP überprüfen und gängige Tools wie curl, git, Python und Firefox über den lokalen SOCKS5-Listener leiten. IPRoyal wird als Beispielanbieter verwendet, da es Residential-, ISP- und Datacenter-Proxys mit Unterstützung für HTTP, SOCKS5 und Shadowsocks auflistet. Wenn Sie einen anderen Anbieter verwenden, ersetzen Sie die Anmeldedaten und Serverdetails durch Ihre eigenen.

Voraussetzungen

  • Eine Linux-Distribution mit systemd, wie Ubuntu, Debian, Fedora, Arch Linux oder ein kompatibler Server oder Desktop.
  • sudo- oder Root-Zugriff für Installation und Dienstverwaltung.
  • Ein IPRoyal-Konto mit Shadowsocks-Anmeldedaten: Serveradresse, Serverport, Passwort und Verschlüsselungsmethode.
  • Grundlegende Vertrautheit mit dem Terminal und Texteditoren wie nano oder vim.
  • Optional: curl zum Testen.

Wie IPRoyal Shadowsocks in ein Linux-Setup passt

Shadowsocks ist kein HTTP-Proxy. Es erstellt einen verschlüsselten Tunnel zu einem entfernten Endpunkt und stellt einen lokalen SOCKS5-Proxy bereit. Ihre Anwendungen müssen so konfiguriert werden, dass sie diesen lokalen SOCKS5-Proxy verwenden, oder Sie können Datenverkehr gezielt darüber leiten.

Ein typischer Ablauf:

  1. Eine Anwendung verbindet sich mit 127.0.0.1:1080.
  2. Der lokale Shadowsocks-Client verschlüsselt die Anfrage.
  3. Die verschlüsselte Anfrage geht an den IPRoyal Shadowsocks-Endpunkt.
  4. Der Endpunkt leitet die Anfrage an die Zielseite weiter.
  5. Die Antwort kehrt durch denselben Tunnel zurück.

Da der lokale Listener SOCKS5 ist, können Sie ihn mit Tools verwenden, die SOCKS5 oder socks5h unterstützen (SOCKS5 mit remote DNS-Auflösung). Verwenden Sie socks5h, wenn DNS-Abfragen über den Proxy statt auf Ihrem lokalen Rechner aufgelöst werden sollen.

Schritte

Schritt 1: Shadowsocks-Client unter Linux installieren

Installieren Sie shadowsocks-libev, das den ss-local-Client bereitstellt und gut mit systemd funktioniert.

Für Debian oder Ubuntu:

sudo apt update
sudo apt install shadowsocks-libev

Für Fedora oder Distributionen der RHEL-Familie:

sudo dnf install shadowsocks-libev

Für Arch Linux:

sudo pacman -S shadowsocks-libev

Wenn Ihre Distribution shadowsocks-libev nicht paketiert, können Sie shadowsocks-rust aus Ihrem Paketmanager installieren oder aus dem Quellcode bauen. Die folgenden Konfigurationskonzepte sind dieselben, auch wenn die Binärnamen abweichen können.

Schritt 2: IPRoyal-Shadowsocks-Umgebungsdatei erstellen

Erstellen Sie eine Umgebungsdatei, die die Details des IPRoyal-Shadowsocks-Endpunkts enthält. Ersetzen Sie die Platzhalterwerte durch den exakten Server, Port, das Passwort und die Methode aus Ihrem IPRoyal-Dashboard.

sudo mkdir -p /etc/iproyal
sudo nano /etc/iproyal/shadowsocks.env

Fügen Sie die folgenden Werte hinzu:

SS_SERVER=YOUR_IPROYAL_SERVER
SS_PORT=8388
SS_PASSWORD=YOUR_IPROYAL_PASSWORD
SS_METHOD=aes-256-gcm
SS_LOCAL_ADDRESS=127.0.0.1
SS_LOCAL_PORT=1080

Hinweise:

  • Verwenden Sie die Verschlüsselungsmethode genau so, wie sie von IPRoyal bereitgestellt wird. Gängige Methoden sind aes-256-gcm, chacha20-ietf-poly1305 und aes-128-gcm, aber der Endpunkt muss die von Ihnen gewählte Methode unterstützen.
  • Wenn IPRoyal Ihnen einen SOCKS5-Endpunkt statt eines Shadowsocks-Endpunkts gibt, verwenden Sie eine SOCKS5-Client-Konfiguration oder ein Tool wie ProxyChains anstelle von Shadowsocks.
  • Halten Sie die Datei nur für root lesbar, wenn sie Anmeldedaten enthält:
sudo chmod 600 /etc/iproyal/shadowsocks.env

Schritt 3: Konfiguration im Vordergrund testen

Bevor Sie einen Dienst erstellen, führen Sie den Client im Vordergrund aus, um zu bestätigen, dass die Anmeldedaten und der Netzwerkpfad funktionieren.

sudo ss-local -s YOUR_IPROYAL_SERVER -p 8388 -b 127.0.0.1 -l 1080 -k YOUR_IPROYAL_PASSWORD -m aes-256-gcm -u -v

Lassen Sie dieses Terminal geöffnet. Testen Sie in einem zweiten Terminal den lokalen SOCKS5-Listener:

curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

Wenn der Befehl eine IP-Adresse zurückgibt, die von Ihrer normalen öffentlichen IP abweicht, funktioniert der Tunnel. Drücken Sie Ctrl+C im ersten Terminal, um den Vordergrundclient zu stoppen.

Schritt 4: Shadowsocks-Client als systemd-Dienst ausführen

Erstellen Sie eine systemd-Unit, damit der Client beim Booten startet und nach Fehlern neu startet.

sudo nano /etc/systemd/system/iproyal-shadowsocks.service

Fügen Sie hinzu:

[Unit]
Description=IPRoyal Shadowsocks local client
After=network-online.target
Wants=network-online.target

[Service]
EnvironmentFile=/etc/iproyal/shadowsocks.env
ExecStart=/usr/bin/ss-local -s ${SS_SERVER} -p ${SS_PORT} -b ${SS_LOCAL_ADDRESS} -l ${SS_LOCAL_PORT} -k ${SS_PASSWORD} -m ${SS_METHOD} -u
Restart=on-failure
RestartSec=5
LimitNOFILE=32768

[Install]
WantedBy=multi-user.target

Passen Sie den ExecStart-Pfad an, wenn sich Ihre ss-local-Binärdatei an einer anderen Stelle befindet. Sie finden sie mit:

command -v ss-local

Wenn Ihr Anbieter UDP-Relay nicht unterstützt, entfernen Sie -u aus der ExecStart-Zeile.

Laden Sie systemd neu und starten Sie den Dienst:

sudo systemctl daemon-reload
sudo systemctl enable --now iproyal-shadowsocks
sudo systemctl status iproyal-shadowsocks

Schritt 5: Lokalen SOCKS5-Listener und ausgehende IP überprüfen

Prüfen Sie, ob der Client lokal lauscht:

ss -ltnp | grep 1080

Überprüfen Sie dann die ausgehende IP über den Proxy:

curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
curl --socks5-hostname 127.0.0.1:1080 https://ipinfo.io/ip

Vergleichen Sie das Ergebnis mit Ihrer direkten Verbindung:

curl https://ifconfig.me

Wenn die Adressen abweichen, leitet der lokale Client Datenverkehr über den IPRoyal Shadowsocks-Endpunkt weiter. Wenn sie übereinstimmen, lesen Sie den Abschnitt zur Fehlerbehebung unten.

Schritt 6: CLI-Tools über den lokalen SOCKS5-Proxy leiten

Verwenden Sie den lokalen SOCKS5-Listener mit Tools, die SOCKS5 unterstützen. Bevorzugen Sie socks5h, damit die DNS-Auflösung über den Proxy erfolgt.

Für curl:

curl --socks5-hostname 127.0.0.1:1080 https://httpbin.org/ip

Für git:

git config --global http.proxy socks5h://127.0.0.1:1080
git config --global https.proxy socks5h://127.0.0.1:1080

Um diese Git-Proxy-Einstellungen später zu entfernen:

git config --global --unset http.proxy
git config --global --unset https.proxy

Für Python requests installieren Sie SOCKS-Unterstützung und verwenden Sie den Proxy:

python3 -m pip install 'requests[socks]'
import requests

proxies = {
    'http': 'socks5h://127.0.0.1:1080',
    'https': 'socks5h://127.0.0.1:1080',
}

response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=30)
print(response.json())

Verwenden Sie für wget einen SOCKS5-kompatiblen Wrapper oder Umgebungsvariablen, sofern unterstützt. curl und Python bieten normalerweise das eindeutigste Verhalten für SOCKS5-Tests.

Schritt 7: Browser- oder Desktop-Proxy konfigurieren

Öffnen Sie für Firefox die Einstellungen, suchen Sie nach Netzwerkeinstellungen, wählen Sie Manuelle Proxy-Konfiguration und legen Sie fest:

  • SOCKS-Host: 127.0.0.1
  • Port: 1080
  • SOCKS v5: ausgewählt
  • DNS über Proxy bei SOCKS v5 verwenden: aktiviert

Für GNOME-Desktop-Umgebungen können Sie den Systemproxy manuell festlegen:

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.socks host '127.0.0.1'
gsettings set org.gnome.system.proxy.socks port 1080

Um zu einer direkten Verbindung zurückzukehren:

gsettings set org.gnome.system.proxy mode 'none'

Nicht jede Anwendung respektiert Systemproxy-Einstellungen. Im Zweifel konfigurieren Sie den Proxy direkt in der Anwendung oder verwenden Sie einen SOCKS5-fähigen Wrapper.

Schritt 8: DNS- und Leak-Verhalten bestätigen

Führen Sie eine Anfrage aus, die Resolver und IP meldet:

curl --socks5-hostname 127.0.0.1:1080 https://ipinfo.io/json

Prüfen Sie, ob die gemeldete IP zum Proxy-Endpunkt gehört. Da socks5h den Hostnamen zur Auflösung an den Proxy sendet, werden lokale DNS-Abfragen für diese Anfrage vermieden. Wenn Sie stattdessen socks5:// verwenden, wird der Hostname möglicherweise zuerst lokal aufgelöst, was DNS-Informationen preisgeben kann.

Fehlerbehebung

Der Dienst startet, aber die IP ändert sich nicht

  • Stellen Sie sicher, dass Ihr Testbefehl --socks5-hostname oder socks5h:// verwendet und keine direkte Verbindung.
  • Prüfen Sie die Dienstprotokolle:
journalctl -u iproyal-shadowsocks -e
  • Vergewissern Sie sich, dass Serveradresse, Port, Passwort und Verschlüsselungsmethode exakt mit dem IPRoyal-Dashboard übereinstimmen.
  • Testen Sie mit einem anderen Ziel wie https://httpbin.org/ip, um standortspezifisches Verhalten auszuschließen.

ss-local schlägt mit einem Authentifizierungs- oder Methodenfehler fehl

  • Die Verschlüsselungsmethode muss zum entfernten Endpunkt passen. Wenn IPRoyal chacha20-ietf-poly1305 bereitstellt, verwenden Sie nicht aes-256-gcm.
  • Prüfen Sie das Passwortfeld auf nachgestellte Leerzeichen oder versteckte Zeichen.
  • Wenn Ihr Passwort Sonderzeichen enthält, setzen Sie es in der Umgebungsdatei korrekt in Anführungszeichen oder verwenden Sie eine Konfigurationsdatei, die Ihr Client unterstützt.
  • Führen Sie den Client im ausführlichen Modus aus, um den genauen Fehler zu sehen:
sudo ss-local -s YOUR_IPROYAL_SERVER -p 8388 -b 127.0.0.1 -l 1080 -k YOUR_IPROYAL_PASSWORD -m aes-256-gcm -u -v

Verbindung auf 127.0.0.1:1080 verweigert

  • Möglicherweise verwendet bereits ein anderer Dienst Port 1080. Prüfen Sie mit:
sudo ss -ltnp | grep 1080
  • Ändern Sie SS_LOCAL_PORT in der Umgebungsdatei auf einen anderen Wert, z. B. 1081, starten Sie den Dienst neu und aktualisieren Sie Ihre Clientbefehle.
  • Bestätigen Sie, dass der systemd-Dienst tatsächlich läuft:
systemctl is-active iproyal-shadowsocks

Zeitüberschreitungen oder langsamer Durchsatz

  • Probieren Sie einen anderen IPRoyal-Endpunkt oder eine andere Region aus, wenn Ihr Dashboard mehrere Standorte bietet.
  • Testen Sie den Nur-TCP-Modus, indem Sie -u aus der ExecStart-Zeile entfernen, wenn der Endpunkt UDP nicht unterstützt.
  • Prüfen Sie Ihre lokale Firewall und Netzwerkrichtlinien. Einige Unternehmens- oder Campusnetzwerke blockieren nicht standardmäßige ausgehende Ports.
  • Reduzieren Sie Timeout-Werte nur zu Testzwecken; sehr niedrige Timeouts können bei langsamen Verbindungen falsche Fehler verursachen.

Browser-Datenverkehr verwendet den Proxy nicht

  • Stellen Sie in Firefox sicher, dass SOCKS v5 ausgewählt und DNS über Proxy bei SOCKS v5 aktiviert ist.
  • Wenn Sie GNOME-Einstellungen verwenden, beachten Sie, dass nur einige Anwendungen den Systemproxy berücksichtigen.
  • Testen Sie dasselbe Ziel mit curl --socks5-hostname, um zu bestätigen, dass der lokale SOCKS5-Listener unabhängig vom Browser funktioniert.

Zusammenfassung

Sie haben einen IPRoyal Shadowsocks-Endpunkt unter Linux konfiguriert, indem Sie shadowsocks-libev installiert, eine lokale Clientkonfiguration erstellt, sie als systemd-Dienst ausgeführt und die ausgehende IP über einen lokalen SOCKS5-Listener überprüft haben. Sie haben außerdem gelernt, wie Sie curl, Git, Python requests und Browser-Datenverkehr über 127.0.0.1:1080 leiten und wie Sie häufige Authentifizierungs-, Port-, DNS- und Timeout-Probleme beheben. IPRoyal ist ein Anbieter, der in Betracht kommt, wenn Sie Residential-, ISP- oder Datacenter-Proxys mit SOCKS5- und Shadowsocks-ähnlicher Unterstützung benötigen; bestätigen Sie immer das genaue Protokoll und die Anmeldedaten in Ihrem Anbieter-Dashboard, bevor Sie Clients konfigurieren.