Wissensbasis Einfache Anweisungen zur Arbeit mit dem Profitserver-Dienst
Main Wissensbasis Shadowsocks-Leitfaden (shadowsocks-rust /shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone

Shadowsocks-Leitfaden (shadowsocks-rust /shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone


Shadowsocks ist ein leichtgewichtiges, auf SOCKS5 basierendes verschlüsseltes Proxy-Protokoll, das ursprünglich entwickelt wurde, um Traffic Shaping und Blockierungen in herkömmlichen Netzwerken zu umgehen. Im Gegensatz zu einem vollständigen VPN leitet es nur den Datenverkehr weiter, den eine Anwendung explizit sendet, verursacht kaum Protokoll-Overhead und funktioniert selbst bei eingeschränkten Verbindungen zuverlässig. Es versucht nicht, einen echten TLS-Handshake wie VLESS+Reality nachzubilden – seine Stärken liegen in seiner Einfachheit, der breiten Client-Unterstützung (Router, Smartphones, Browser) und der sehr geringen Latenz. Dies geht jedoch auf Kosten der besseren Anfälligkeit für die Identifizierung anhand des Datenverkehrsmusters in stark überwachten Netzwerken.

Es gibt zwei aktiv gewartete Serverimplementierungen:

  • shadowsocks-rust – die moderne Referenzimplementierung der shadowsocks-Organisation, geschrieben in Rust. Sie unterstützt die neuere AEAD-2022-Verschlüsselungsfamilie, wird aktiv weiterentwickelt und ist die Implementierung, deren Installation und Konfiguration in diesem Leitfaden detailliert beschrieben wird.
  • shadowsocks-libev – die ältere C-Implementierung. Sie wird weiterhin gepflegt und mit Fehlerbehebungen versehen, ist als fertiges apt-Paket mit eigenen systemd-Units verfügbar und eignet sich gut für eine möglichst einfache Installation ohne manuelle Binärverwaltung. In Abschnitt 3 dieser Anleitung wird sie als alternativer Installationspfad beschrieben.

Diese Anleitung beschreibt die manuelle Konfiguration des Servers über die Kommandozeile – ohne Webpanel oder Docker. Ersetzen Sie überall dort, wo das Feld „IP-Adresse“ erscheint, diese durch die tatsächliche IP-Adresse Ihres VPS.

Was Sie benötigen: einen VPS mit Ubuntu 22.04/24.04 oder Debian 11/12, Root-Zugriff, die IP-Adresse Ihres VPS und einen freien UDP/TCP-Port (in dieser Anleitung wird Port 8388 verwendet, der Standardport von Shadowsocks).

Sie haben noch keinen Server? Lesen Sie , wie Sie einen Server bestellen und bezahlen können.

Sie möchten dies zunächst mit anderen selbstgehosteten Optionen vergleichen? Dann schauen Sie sich den Xray VLESS Reality Guide für eine TLS-Camouflage-basierte Alternative, den AmneziaWG Server Deployment Guide für eine WireGuard-basierte Option oder die Hysteria2- und TUIC-Einrichtung für zwei weitere moderne Proxy-Protokolle an.

Verbindung zum Server herstellen

Windows (PuTTY)

Öffnen Sie PuTTY, geben Sie Ihre VPS-IP-Adresse in das Feld „Host Name“ ein, stellen Sie den Port auf 22 ein und melden Sie sich als Root mit dem Passwort an, das Ihnen Ihr VPS-Anbieter per E-Mail zugesendet hat.

Server-IP-Adresse: Ihre IP-Adresse

Anmelden als: root

Passwort: Ihr Passwort

Eine detaillierte Anleitung zum Verbinden über PuTTY/SSH finden Sie unter „Verbindung zu einem Linux-Server über SSH herstellen“.

PuTTY-Sitzungskonfiguration für den SSH-Zugriff. PuTTY-SSH-Terminal nach der Verbindung zum VPS. Erfolgreiche SSH-Anmeldung am VPS.

Linux / macOS (Terminal)

ssh root@your_IP_address

Alle nachfolgenden Befehle werden auf dem Server in derselben SSH-Sitzung ausgeführt – dies umfasst die Abschnitte 2 bis 7 sowie die serverseitigen Prüfungen in Abschnitt 13. Die Abschnitte 8–12 (Installation und Konfiguration der Client-Apps) werden hingegen auf Ihrem eigenen Windows-/macOS-/Linux-/Android-/iOS-Gerät ausgeführt, da der Proxy auf diesem Gerät laufen muss; in jedem dieser Abschnitte wird explizit angegeben, welche Zeilen gegebenenfalls noch den Server betreffen.

Vorbereiten des Servers

Aktualisieren Sie das System

Vor der Installation jeglicher Pakete sollten Sie die Paketliste aktualisieren und die installierten Pakete auf den neuesten Stand bringen:

apt update -y && apt upgrade -y
Befehl zum Aktualisieren installierter Pakete. Ausgabe des Paket-Upgrades. Kernel-Upgrade-Benachrichtigung wird während des Paket-Upgrades angezeigt Während eines Paket-Upgrades wird eine Aufforderung zum Neustart der Dienste angezeigt.

Falls dadurch der Kernel aktualisiert wird, empfiehlt sich ein Neustart vor dem Fortfahren. (Weitere Informationen zu apt und der Funktionsweise von Linux-Paketmanagern finden Sie unter Linux-Paketmanager .) Prüfen Sie Folgendes:

cat /var/run/reboot-required
Befehl zur Überprüfung, ob ein Neustart erforderlich ist. Ausgabe der Überprüfung, ob ein Neustart erforderlich ist.

Falls die Datei existiert, starten Sie das System zunächst mit dem Befehl 'reboot' neu, warten Sie etwa 30 Sekunden und stellen Sie dann die Verbindung wieder her.

Installieren Sie die in dieser Anleitung verwendeten Tools.

apt install -y curl wget tar xz-utils ufw qrencode

curl/wget und tar/xz-utils werden benötigt, um das shadowsocks-rust Release-Archiv abzurufen und zu entpacken; ufw ist die unten konfigurierte Firewall; qrencode wandelt den fertigen Client-Link in einen scannbaren QR-Code in Abschnitt 7 um.

Befehl zur Installation der benötigten Server-Dienstprogramme.

Konfigurieren Sie die Firewall (UFW)

Weitere Informationen zu UFW-Regeln finden Sie unter Konfigurieren der Firewall unter Linux.

Öffnen Sie die beiden benötigten Ports: 22/tcp für SSH (wenn Sie diese Regel ignorieren, riskieren Sie, den Zugriff auf den Server zu verlieren) und 8388, sowohl tcp als auch udp – Shadowsocks fungiert als Proxy für TCP-Verbindungen und UDP-Assoziationen (nützlich für DNS und einige Spiele/Apps), daher müssen beide Richtungen des Ports geöffnet sein.

ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status

Alle drei Regeln sollten in der ufw-Statusausgabe als „Zulassen“ angezeigt werden. Wenn Sie später den Port in der config.json ändern, aktualisieren Sie diese Regeln entsprechend.

UFW-Status mit Anzeige der konfigurierten SSH- und Shadowsocks-Regeln.

Installation der Serversoftware

Wählen Sie eine der beiden folgenden Optionen. Option A (shadowsocks-rust) wird empfohlen: Es handelt sich um die aktiv weiterentwickelte Implementierung, die die modernen AEAD-2022-Verschlüsselungsverfahren unterstützt, die später in diesem Leitfaden verwendet werden. Option B (shadowsocks-libev) ist eine gute Wahl, wenn Sie lieber ein einfaches apt-Paket mit einer fertigen systemd-Unit verwenden möchten und AEAD-2022 nicht benötigen.

Option A — shadowsocks-rust (empfohlen)

Shadowsocks-rust wird in den aktuellen Versionen nicht als apt-Paket ausgeliefert, sondern durch Herunterladen der vorkompilierten statischen Binärdatei aus den GitHub-Releases des Projekts installiert. Rufen Sie den neuesten Release-Tag über die GitHub-API ab und laden Sie das entsprechende Linux x86_64-Archiv herunter:

SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
echo "Latest version: $SS_VER"
cd /root
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
Befehl zum Herunterladen des shadowsocks-rust-Release-Archivs.

Falls Ihr VPS arm64 statt x86_64 ist (prüfen Sie dies mit `uname -m`), ersetzen Sie x86_64-unknown-linux-gnu im obigen Dateinamen durch aarch64-unknown-linux-gnu.

Entpacken Sie das Archiv und installieren Sie die Binärdateien systemweit:

tar -xf shadowsocks-*.tar.xz
install -m 755 ssserver ssservice ssmanager ssurl /usr/local/bin/
rm -f shadowsocks-*.tar.xz ssserver ssservice ssmanager ssurl sslocal 2>/dev/null
Befehl zum Extrahieren und Installieren der shadowsocks-rust-Binärdateien.

Überprüfen Sie, ob die Binärdatei vorhanden ist und welche Version installiert wurde:

ssserver --version
Installierte ssserver-Version.

Erstellen Sie das Verzeichnis, in dem die Konfigurationsdatei gespeichert werden soll:

mkdir -p /etc/shadowsocks-rust
Erstellung des shadowsocks-rust-Konfigurationsverzeichnisses.

Diese Anleitung installiert eine feste Version, anstatt ein Installationsskript in die Bash einzubinden. Um später ein Upgrade durchzuführen, führen Sie die beiden oben genannten Befehle mit einer aktuellen SS_VER-Abfrage erneut aus, stoppen Sie den Dienst, ersetzen Sie die Binärdatei und starten Sie ihn neu (Abschnitt 6).

Option B — shadowsocks-libev (alternativ, apt-Paket)

Shadowsocks-libev ist im Ubuntu-Universe-Repository (Ubuntu 16.10+) und im Debian-Haupt-Repository (Debian 8+) enthalten, sodass unter 22.04/24.04 oder Debian 11/12 kein PPA von Drittanbietern benötigt wird:

apt install -y shadowsocks-libev
Befehl zum Installieren von shadowsocks-libev aus dem Paket-Repository.

Wenn apt meldet, dass das Paket nicht gefunden wurde, ist das Universe-Repository deaktiviert; aktivieren Sie es und versuchen Sie es erneut:

add-apt-repository universe && apt update && apt install -y shadowsocks-libev

Das Paket installiert seine eigenen systemd-Units (shadowsocks-libev.service für die Standardkonfiguration sowie [email protected] für benutzerdefinierte Konfigurationen) und erstellt automatisch die Datei /etc/shadowsocks-libev/config.json. In den Abschnitten 4–6 werden die libev-spezifischen Befehle und Dateipfade neben den Rust-Befehlen erläutert. Die übrigen Client-Abschnitte dieses Leitfadens (7–13) gelten gleichermaßen für beide Serverimplementierungen, da beide das gleiche Shadowsocks/SIP002-Protokoll verwenden.

Passwort generieren und Verschlüsselungsmethode auswählen

Die Shadowsocks-Authentifizierung besteht aus einem einzigen gemeinsamen Passwort und einem Verschlüsselungsverfahren, auf das sich beide Seiten einigen müssen – es gibt keine separate UUID, kein Schlüsselpaar und kein Zertifikat zu verwalten.

Chiffrierfamilien

  • AEAD-2022 (empfohlen, nur shadowsocks-rust): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Neueres Design (SIP022) mit stärkerem Schutz vor Replay-Angriffen und Unterstützung für mehrere Benutzer, die einen Port gemeinsam nutzen. Das Passwort muss eine Base64-kodierte Zeichenkette mit exakt der Schlüssellänge des Verschlüsselungsverfahrens sein (16 Byte für die 128-Bit-Varianten, 32 Byte für die 256-Bit-Variante).
  • Klassisches AEAD (unterstützt von Rust und Libev): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Weitgehend kompatibel mit älteren Clients und mit shadowsocks-libev; das Passwort kann eine beliebige Passphrase sein, da es über eine Schlüsselerzeugungsfunktion verarbeitet und nicht direkt als Schlüsselmaterial verwendet wird.

Diese Anleitung verwendet 2022-blake3-aes-256-gcm für den Shadowsocks-Rust-Server, da dies die aktuellste und leistungsstärkste Option ist und von allen später empfohlenen Clients (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG) unterstützt wird. Falls Sie Shadowsocks-libev in Abschnitt 3 installiert haben, verwenden Sie stattdessen chacha20-ietf-poly1305 oder aes-256-gcm, da libev AEAD-2022 nicht implementiert.

Generieren Sie einen Schlüssel (shadowsocks-rust)

ssservice genkey -m "2022-blake3-aes-256-gcm"
Befehl zum Generieren einer zufälligen Passphrase für shadowsocks-libev.

Hier wird eine Base64-Zeichenkette ausgegeben – das ist Ihr Passwort. Kopieren Sie diese an einen sicheren Ort; Sie benötigen sie sowohl für die Serverkonfiguration in Abschnitt 5 als auch für den Client-Link in Abschnitt 7.

Zufällig generierte Passphrase.

Wählen Sie eine Passphrase (shadowsocks-libev)

Für die klassischen AEAD-Verschlüsselungsverfahren, die von shadowsocks-libev verwendet werden, funktioniert jede ausreichend lange Zufallszeichenkette, da sie durch PBKDF/HKDF verarbeitet und nicht als Rohschlüssel verwendet wird. Generieren Sie eine solche Zeichenkette mit:

openssl rand -base64 32

Schreiben der Serverkonfiguration

Schattensocken-Rost

Öffnen Sie die Konfigurationsdatei zum Bearbeiten:

nano /etc/shadowsocks-rust/config.json

Fügen Sie die unten stehende Vorlage ein und ersetzen Sie dabei Ihr Passwort aus Abschnitt 4 (und den Port aus Abschnitt 2, falls Sie ihn von 8388 geändert haben):

{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "YOUR-GENERATED-KEY-HERE",
    "method": "2022-blake3-aes-256-gcm",
    "mode": "tcp_and_udp",
    "timeout": 300,
    "nofile": 51200
}

Drücken Sie Strg+O (WriteOut), um die Datei zu speichern, Enter, um den Dateinamen zu bestätigen, und anschließend Strg+X, um nano zu beenden.

Die wichtigsten Felder: server lauscht auf allen Schnittstellen (0.0.0.0); server_port ist der in Abschnitt 2 geöffnete Port; password/method sind die Anmeldeinformationen und die Verschlüsselung aus Abschnitt 4; mode aktiviert sowohl TCP- als auch UDP-Relaying; timeout ist das Timeout für inaktive Verbindungen in Sekunden; nofile erhöht das Dateideskriptorlimit für stark ausgelastete Server.

Prüfen Sie, ob das JSON-Objekt und die Binärdatei es akzeptiert, bevor Sie es in systemd einbinden:

ssserver -c /etc/shadowsocks-rust/config.json --help >/dev/null && echo "binary OK"
python3 -m json.tool /etc/shadowsocks-rust/config.json >/dev/null && echo "JSON OK"

Erstelle die systemd-Unit (shadowsocks-rust)

Die Binärversion enthält keine systemd-Unit, daher muss eine erstellt werden:

nano /etc/systemd/system/ssserver.service
[Unit]
Description=Shadowsocks-Rust Server
Documentation=https://github.com/shadowsocks/shadowsocks-rust
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks-rust/config.json
Restart=on-failure
RestartSec=5s
LimitNOFILE=51200
User=root
 
[Install]
WantedBy=multi-user.target

Speichern und beenden Sie wie oben beschrieben und weisen Sie dann systemd an, die neue Unit-Datei zu verwenden:

systemctl daemon-reload

Shadowsocks-libev

Das apt-Paket hat bereits die Datei `/etc/shadowsocks-libev/config.json` mit einer Standardkonfiguration (nur Loopback, zufälliges Passwort) und einer eigenen systemd-Unit erstellt. Öffnen Sie sie zum Bearbeiten:

Befehl zum Öffnen der shadowsocks-libev-Konfigurationsdatei.
nano /etc/shadowsocks-libev/config.json

Ersetzen Sie den Inhalt durch:

{
    "server":"0.0.0.0",
    "server_port":8388,
    "password":"YOUR-PASSPHRASE-HERE",
    "method":"chacha20-ietf-poly1305",
    "mode":"tcp_and_udp",
    "timeout":300
}
Beispielkonfiguration für shadowsocks-libev.

Die Standardkonfiguration verwendet server: ["::1", "127.0.0.1"] (nur Loopback); durch die Änderung auf "0.0.0.0" wird der Server über die öffentliche IP-Adresse erreichbar – überspringen Sie diesen Schritt nicht, wenn Sie die Originaldatei anstelle der obigen Vorlage kopiert haben.

Starten des Dienstes und Aktivieren des automatischen Starts

Schattensocken-Rost

systemctl enable --now ssserver
systemctl status ssserver --no-pager

Der Status sollte „aktiv“ (läuft) anzeigen. Stellen Sie sicher, dass tatsächlich ein Prozess am Port lauscht (beide Protokolle):

Server lauscht auf TCP- und UDP-Port 8388.
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'

Falls der Dienst nicht startet, lässt sich die Ursache am schnellsten im systemd-Journal ermitteln (Hintergrundinformationen zum Lesen von Linux-Protokollen im Allgemeinen finden Sie unter Wie man Linux-Protokolle liest und wo man sie findet ):

journalctl -u ssserver -n 50 --no-pager

Shadowsocks-libev

systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager

Überprüfen Sie Port und Logs auf die gleiche Weise wie bei shadowsocks-rust, wobei Sie den Dienstnamen ersetzen:

Befehle zum Neustarten, Aktivieren und Überprüfen des shadowsocks-libev-Dienstes. Der Status des Shadowsocks-libev-Dienstes wird als aktiv (läuft) angezeigt.
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager

Aufbau der Client-Verbindung

Shadowsocks-Clients importieren einen einzelnen ss://-Freigabelink (das SIP002-URL-Format) anstelle einer Konfigurationsdatei. Der Link kodiert Verschlüsselung und Passwort als Base64 im Benutzerinfo-Teil der URL:

ss://base64(method:password)@your_IP_address:port#label

Erstellen Sie den Base64-Teil auf dem Server (dadurch werden Tippfehler bei der manuellen Kodierung vermieden):

METHOD="2022-blake3-aes-256-gcm"
PASSWORD="YOUR-GENERATED-KEY-HERE"
USERINFO=$(echo -n "${METHOD}:${PASSWORD}" | base64 -w0)
echo "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"

Beispielausgabe (mit Platzhalterschlüssel):

Beispiel für eine generierte ss://-Verbindung (veranschaulichend).
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server

Der Text nach # ist lediglich eine Anzeigebezeichnung, die Sie in jedem Client beliebig ändern können. Ersetzen Sie für einen shadowsocks-libev-Server METHOD="chacha20-ietf-poly1305" (oder aes-256-gcm) und die zugehörige Passphrase aus Abschnitt 4. 

Wandeln Sie es in einen QR-Code um, damit mobile Clients ihn direkt scannen können:

qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"

Kopieren Sie die PNG-Datei mit scp auf Ihren eigenen Computer. Führen Sie den Befehl dazu im Terminal Ihres Computers (oder in PowerShell unter Windows) aus, nicht auf dem Server:

scp root@your_IP_address:~/ss-client.png .

Verbindung über Windows herstellen

Alles in diesem Abschnitt findet auf Ihrem Windows-PC statt, nicht über SSH – der Client muss auf dem Gerät ausgeführt werden, das den Proxy tatsächlich nutzen soll.

Installieren Sie v2rayN

v2rayN ist ein kostenloser, aktiv weiterentwickelter GUI-Client mit nativer Shadowsocks-Unterstützung sowie Unterstützung für VLESS, VMess, Trojan und weitere. Die neueste Version kann von der Projektseite heruntergeladen werden.

Laden Sie die Windows 64-Bit .zip-Datei herunter (eine eigenständige Version benötigt ab den neuesten v2rayN-Versionen keine separate .NET-Laufzeitumgebung mehr), extrahieren Sie sie an einem beliebigen Ort und führen Sie v2rayN.exe aus.

Importieren Sie den Server

Kopieren Sie den in Abschnitt 7 erstellten ss://-Link in Ihre Zwischenablage (oder kopieren Sie die QR-PNG-Datei mit scp und öffnen Sie sie). Wählen Sie anschließend in v2rayN „Server“ → „URLs aus der Zwischenablage importieren“ (oder scannen Sie den QR-Code mit dem integrierten Scanner). Das neue Serverprofil erscheint in der Liste mit der von Ihnen nach dem # festgelegten Bezeichnung.

Klicken Sie mit der rechten Maustaste auf das Profil und wählen Sie es als aktiv aus. Aktivieren Sie anschließend den Systemproxy (oder den TUN-Modus für das Routing des gesamten Rechners) über die Symbolleiste des Hauptfensters.

Verbindung über macOS herstellen

Alles in diesem Abschnitt findet auf Ihrem Mac statt, nicht über SSH.

Installieren Sie ShadowsocksX-NG

ShadowsocksX-NG ist der seit Langem bewährte native macOS-GUI-Client für Shadowsocks. Die aktuelle Version enthält eine native Apple-Silicon-Version sowie eine Intel-Version. Laden Sie die neueste .dmg-Datei von der Release-Seite herunter.

Öffnen Sie die .dmg-Datei und ziehen Sie ShadowsocksX-NG in den Ordner „Programme“. Starten Sie das Programm anschließend – es erscheint als Symbol in der Menüleiste.

 

Importieren Sie den Server

Kopieren Sie den ss://-Link aus Abschnitt 7 in Ihre Zwischenablage. Klicken Sie anschließend auf das Menüleistensymbol → Server → Servereinstellungen → das Pluszeichen unten links und wählen Sie „Aus Zwischenablage importieren“ (oder scannen Sie den QR-Code mit „QR-Code vom Bildschirm scannen“, nachdem Sie die PNG-Datei geöffnet haben). Wählen Sie das neue Profil aus dem Dropdown-Menü der Menüleiste aus, aktivieren Sie „Shadowsocks: Ein“ und wählen Sie im selben Menü den Routing-Modus „PAC Auto“ oder „Global“.

Verbindung von einem Linux-Desktop

Alles in diesem Abschnitt findet auf Ihrem eigenen Linux-Rechner statt, nicht auf dem VPS.

Installieren Sie den lokalen Client

Wenn Sie shadowsocks-rust in Abschnitt 3 auf dem Server installiert haben, enthält dasselbe Release-Archiv sslocal, einen lokalen SOCKS5/HTTP-Proxy-Client. Laden Sie ihn herunter und installieren Sie ihn auf die gleiche Weise wie die Server-Binärdatei (passen Sie das OS/Arch-Suffix an Ihren Desktop an, falls es nicht x86_64-unknown-linux-gnu lautet):

SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
tar -xf shadowsocks-*.tar.xz
sudo install -m 755 sslocal /usr/local/bin/

Konfigurieren und ausführen

Erstellen Sie eine kleine lokale Konfiguration, die auf 127.0.0.1:1080 als SOCKS5-Proxy lauscht:

mkdir -p ~/.config/shadowsocks-rust
cat > ~/.config/shadowsocks-rust/local.json << 'EOF'
{
    "server": "your_IP_address",
    "server_port": 8388,
    "password": "YOUR-GENERATED-KEY-HERE",
    "method": "2022-blake3-aes-256-gcm",
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "mode": "tcp_and_udp"
}
EOF
sslocal -c ~/.config/shadowsocks-rust/local.json

Richten Sie Ihren Browser oder Ihre Systemnetzwerkeinstellungen auf einen SOCKS5-Proxy unter 127.0.0.1:1080 ein. Für eine grafische Benutzeroberfläche können Nekoray- oder ShadowsocksX-Qt5-basierte Forks denselben ss://-Link aus Abschnitt 7 importieren und sslocal für Sie verwalten, anstatt es manuell auszuführen.

Verbindung von Android

Hier findet alles auf Ihrem Android-Gerät statt, nicht über SSH.

Installieren Sie einen Client

Zwei gute Optionen:

  • Shadowsocks für Android – der offizielle Client der Shadowsocks-Organisation. Installieren Sie ihn über Google Play (suchen Sie nach „Shadowsocks“) oder laden Sie die APK-Datei direkt von der Release-Seite des Projekts herunter, falls Play auf Ihrem Gerät nicht verfügbar ist. Region.
  • v2rayNG – das Android-Pendant zu v2rayN, das neben VLESS/VMess/Trojan auch Shadowsocks unterstützt; nützlich, wenn Sie eine App für mehrere Protokolle benötigen. Typen.

Importieren Sie den Server

In beiden Apps: Tippen Sie auf die Schaltfläche „+“, wählen Sie „Aus Zwischenablage importieren“, nachdem Sie den ss://-Link aus Abschnitt 7 kopiert haben, oder „QR-Code scannen“ und richten Sie die Kamera auf die PNG-Datei. Tippen Sie auf das importierte Profil, um es auszuwählen, und anschließend auf die Schaltfläche „Verbinden“. Android fragt beim ersten Mal nach der VPN-Berechtigung – erteilen Sie diese, um den Tunnel herzustellen. 

Verbindung von iOS

Hier findet alles auf Ihrem iPhone oder iPad statt, nicht über SSH.

Installieren Sie einen Shadowsocks-fähigen Client.

Shadowrocket ist der am weitesten verbreitete iOS-Client mit Shadowsocks-Unterstützung; die App ist in den meisten App-Stores kostenpflichtig. Suchen Sie im App Store danach oder öffnen Sie die App.

Streisand ist eine kostenlose Open-Source-Alternative, die neben VLESS, Trojan und anderen Protokollen auch Shadowsocks unterstützt.

Die Kataloge der App Stores variieren je nach Storefront/Region und können sich im Laufe der Zeit ändern; falls keiner der beiden in Ihrem Store sichtbar ist, suchen Sie im App Store nach „Shadowsocks“ oder „V2Box“.

Importieren Sie den Server

Kopieren Sie den ss://-Link in Ihre Zwischenablage, öffnen Sie den Client und verwenden Sie die Option „Hinzufügen/Aus Zwischenablage importieren“ oder scannen Sie den QR-Code aus Abschnitt 7 mit dem integrierten Scanner des Clients. Aktivieren Sie das neue Profil. iOS fordert Sie beim ersten Mal zur VPN-Konfiguration auf. Bestätigen Sie dies per Face ID, Touch ID oder Ihrem Passcode.

Überprüfung der Verbindung

Wenn der Tunnel ab Abschnitt 8, 9, 10, 11 oder 12 aktiv ist, kehren Sie zu Ihrem eigenen Gerät (nicht zur SSH-Sitzung) zurück und öffnen Sie einen beliebigen "What's My IP"-Checker in einem Browser – die angezeigte Adresse sollte mit der IP-Adresse Ihres VPS, Ihrer_IP_Adresse, übereinstimmen.

Um dies stattdessen serverseitig zu überprüfen, prüfen Sie das systemd-Journal auf Verbindungsaktivität und bestätigen Sie die bestehenden Sitzungen auf dem Port (verwenden Sie ssserver für das Rust-Journal oder shadowsocks-libev für das Libev-Journal):

journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'

Referenz:

Feld

Wert

Adresse

die öffentliche IP-Adresse Ihres VPS

Hafen

8388 (derselbe Port, der in Abschnitt 2 geöffnet wurde)

Passwort

der in Abschnitt 4 generierte Schlüssel/die Passphrase

Methodik

2022-blake3-aes-256-gcm (rust) oder chacha20-ietf-poly1305 (libev) – müssen auf beiden Seiten exakt übereinstimmen.

Model

tcp_and_udp — ermöglicht sowohl TCP-Proxying als auch UDP-Relaying (DNS, einige Spiele).

Plugin

In dieser Anleitung werden keine dieser Technologien verwendet – Shadowsocks benötigt weder SNI, Zertifikat noch ein Transport-Plugin, um zu funktionieren.

Fazit

Wenn Sie dieser Anleitung folgen, läuft auf Ihrem VPS ein eigener Shadowsocks-Server – entweder shadowsocks-rust mit einer modernen AEAD-2022-Verschlüsselung oder shadowsocks-libev aus dem Ubuntu/Debian-Repository – als systemd-Dienst, der einen Neustart ohne Ihr Zutun übersteht.

Hinzufügen weiterer Benutzer:

  • Am einfachsten: Generieren Sie ein zweites Passwort (Abschnitt 4) und starten Sie eine zweite ssserver/shadowsocks-libev-Instanz auf einem anderen Port mit eigener Konfigurationsdatei und systemd-Unit. Wiederholen Sie dann die Abschnitte 5–7 für diesen Port.
  • shadowsocks-rust mit einer AEAD-2022-Verschlüsselung unterstützt auch mehrere Benutzer, die sich einen Port und einen Passwortableitungsschlüssel über das "users"-Array in config.json teilen (Extensible Identity Headers, SIP022) — siehe den Abschnitt "Configuration" der shadowsocks-rust README für die genaue Syntax, wenn Sie eine benutzerbezogene Verkehrsabrechnung auf einem einzelnen Port benötigen.

Ein paar Gewohnheiten, die es wert sind, beibehalten zu werden, sobald der Server läuft:

  • Halten Sie den Server auf dem neuesten Stand. Führen Sie für shadowsocks-rust regelmäßig die Download- und Installationsschritte aus Abschnitt 3 mit einer aktuellen Versionsabfrage erneut aus und starten Sie anschließend den ssserver mit `systemctl restart ssserver` neu. Für shadowsocks-libev genügt ein einfaches `apt upgrade`.
  • Sichern Sie die Datei config.json an einem privaten Ort außerhalb des Servers. Sie enthält die Passwörter aller Clients; bei Verlust dieser Datei müssen die Zugangsdaten für jedes Gerät neu generiert werden.
  • Wenn ein Gerät verloren geht oder ein Client kompromittiert wird, muss das Passwort geändert werden: Generieren Sie ein neues (Abschnitt 4), aktualisieren Sie die Datei config.json, starten Sie den Dienst neu und erstellen Sie die Client-Verbindung (Abschnitt 7) für jedes verbleibende Gerät neu.

Falls die Verbindung nicht zustande kommt, überprüfen Sie Folgendes:

  • den Dienststatus (systemctl status ssserver --no-pager, oder shadowsocks-libev) und das Journal (journalctl -u ssserver -n 50 --no-pager)
  • die Firewall-Regeln (ufw-Status – der Port muss sowohl für TCP als auch für UDP geöffnet sein)
  • dass der Port nicht bereits von einem anderen Dienst belegt ist (ss -lntp | grep ':8388' ​​sollte nur ssserver/ss-server anzeigen)
  • Das Passwort, die Methode und der Port im Client müssen exakt mit den Angaben in der config.json übereinstimmen – ein einzelnes abweichendes Zeichen führt zu einem stillschweigenden Fehlschlagen des Handshakes, was sich üblicherweise in einem Verbindungstimeout anstatt in einer expliziten Fehlermeldung äußert.
  • Dieser Modus wird serverseitig auf tcp_and_udp eingestellt, wenn der Client UDP benötigt (DNS-over-Proxy, einige Spiele/Apps) und nicht nur tcp_only.

Vergleichen Sie Shadowsocks mit anderen Optionen? Im Xray VLESS Reality Guide finden Sie ein TLS-basiertes Protokoll, das in stark gefilterten Netzwerken schwerer zu identifizieren ist. WireGuard-basierte Alternativen bieten der AmneziaWG Server Deployment Guide und die Anleitung zur Einrichtung von WireGuard VPN auf Ihrem Server. Hysteria2 und TUIC sind zwei Protokolle, die speziell für verlustbehaftete oder stark gefilterte Netzwerke entwickelt wurden. Benötigen Sie lediglich einen einfachen Proxy anstelle einer vollständigen Tunnelkonfiguration, ist die 3proxy-Konfiguration unter CentOS/ArchLinux eine deutlich schlankere Alternative. Die ältere VPN-Server-Einrichtung unter Linux: PPTP oder OpenVPN? behandelt Protokolle, die zwar einfacher einzurichten, aber für DPI deutlich leichter zu erkennen und zu blockieren sind. Informationen zur allgemeinen Serverhärtung nach der Inbetriebnahme des Proxys finden Sie unter Linux Users: Management and Permissions.

❮ Vorheriger Artikel Xray VLESS Reality Guide: VPS, Windows, Mac, Android, iPhone
Nächster Artikel ❯ VMmanager 6 Sicherheitsvorfall: Was ist passiert und was ist zu tun?

Fragen Sie uns nach VPS

Wir stehen Ihnen jederzeit und rund um die Uhr für Ihre Fragen zur Verfügung.