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.
Ü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
nanoodervim. - Optional:
curlzum 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:
- Eine Anwendung verbindet sich mit
127.0.0.1:1080. - Der lokale Shadowsocks-Client verschlüsselt die Anfrage.
- Die verschlüsselte Anfrage geht an den IPRoyal Shadowsocks-Endpunkt.
- Der Endpunkt leitet die Anfrage an die Zielseite weiter.
- 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-poly1305undaes-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-hostnameodersocks5h://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-poly1305bereitstellt, verwenden Sie nichtaes-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_PORTin 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
-uaus derExecStart-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.