Skip to content

Shadowsocks

Die von Potatso unterstützten Shadowsocks-Verschlüsselungen, Plug-ins, Links und Funktionen.

Updated Als Markdown anzeigen

Ein Shadowsocks-Server wird durch eine Verschlüsselung und ein Passwort beschrieben, optional ergänzt um ein Plug-in, das die Verbindung tarnt. Potatso verbindet sich mit einem Server, wenn es die Verschlüsselung und, falls vorhanden, das Plug-in unterstützt. Prüfe anhand der Tabellen unten die Einstellungen deines Servers, wie dein Anbieter sie angibt oder wie sie in seinem ss://-Link stehen.

Einen Shadowsocks-Server kannst du von Hand, mit einem ss://-Link oder per Import hinzufügen:

  • eines Clash- oder Mihomo-Abonnements,
  • einer SIP008-Online-Konfiguration aus einer Datei oder über einen Link,
  • einer config.json von shadowsocks-rust oder shadowsocks-libev,
  • einer Surge-Konfiguration oder einer Xray- oder V2Ray-Konfiguration.

Verschlüsselungen

Bevorzuge eine 2022-Verschlüsselung, wenn dein Server sie anbietet, danach eine AEAD-Verschlüsselung. Stream-Verschlüsselungen haben bekannte Schwächen: Nutze sie nur mit Servern, die nichts anderes anbieten.

Verschlüsselung Art Unterstützt
2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm 2022 ✅ Mit Mehrbenutzer
2022-blake3-chacha20-poly1305, 2022-blake3-chacha8-poly1305 2022 ✅
aes-128-gcm, aes-192-gcm, aes-256-gcm AEAD ✅
chacha20-ietf-poly1305, xchacha20-ietf-poly1305 AEAD ✅
aes-128-ccm, aes-256-ccm, aes-128-gcm-siv, aes-256-gcm-siv AEAD ✅
sm4-gcm, sm4-ccm AEAD ✅
aes-128-ctr, aes-192-ctr, aes-256-ctr Stream ✅
aes-128-cfb, aes-192-cfb, aes-256-cfb (auch als -cfb128 geschrieben) Stream ✅
aes-128-cfb1, aes-192-cfb1, aes-256-cfb1 Stream ✅
aes-128-cfb8, aes-192-cfb8, aes-256-cfb8 Stream ✅
aes-128-ofb, aes-192-ofb, aes-256-ofb Stream ✅
camellia-128-ctr, camellia-192-ctr, camellia-256-ctr Stream ✅
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb (auch als -cfb128 geschrieben) Stream ✅
camellia-128-cfb1, camellia-192-cfb1, camellia-256-cfb1 Stream ✅
camellia-128-cfb8, camellia-192-cfb8, camellia-256-cfb8 Stream ✅
camellia-128-ofb, camellia-192-ofb, camellia-256-ofb Stream ✅
chacha20-ietf, chacha20, salsa20 Stream ✅
bf-cfb, rc4-md5, rc4, table Stream ✅
none (auch als plain geschrieben) Keine Verschlüsselung ✅
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb, rc4-md5-6 Stream ❌ Nur ShadowsocksR
xchacha20, xsalsa20 Stream ❌

Die Namen unterscheiden nicht zwischen Groß- und Kleinschreibung, AES-256-GCM funktioniert also genauso wie aes-256-gcm.

none sendet deinen Datenverkehr unverschlüsselt. Nutze es nur mit einem Plug-in, das die Verbindung selbst verschlüsselt, etwa v2ray-plugin mit TLS.

Jede unterstützte Verschlüsselung ist gegen mindestens einen echten Shadowsocks-Server getestet: shadowsocks-rust, sing-box oder den ursprünglichen Python-Server. Von den oben genannten AEAD-Verschlüsselungen bieten nur shadowsocks-rust-Server aes-*-ccm, aes-*-gcm-siv und sm4-* an, und nur wenige Anbieter nutzen sie.

2022-Schlüssel

Die 2022-Verschlüsselungen (SIP022) verwenden kein Passwort. Sie verwenden einen Schlüssel: zufällige Bytes, Base64-kodiert, in der Länge, die die Verschlüsselung braucht. 2022-blake3-aes-128-gcm braucht einen 16-Byte-Schlüssel und die anderen 2022-Verschlüsselungen einen 32-Byte-Schlüssel. Verwende den Schlüssel genau so, wie dein Server ihn hat.

Potatso verbindet nicht mit einem Schlüssel der falschen Länge oder mit einem Passwort, das nicht Base64 ist. Um einen neuen Schlüssel für deinen Server zu erzeugen, führe openssl rand -base64 16 für 2022-blake3-aes-128-gcm oder openssl rand -base64 32 für die anderen 2022-Verschlüsselungen aus.

Mehrbenutzer-Server

Ein 2022-Server kann einen Port auf mehrere Benutzer aufteilen (SIP023). Jeder Benutzer hat einen eigenen Schlüssel. Setze bei diesen Servern das Passwort auf den Serverschlüssel und deinen Benutzerschlüssel, getrennt durch einen Doppelpunkt:

server-key:user-key

Nur 2022-blake3-aes-128-gcm und 2022-blake3-aes-256-gcm unterstützen Mehrbenutzer-Server.

Plug-ins

Ein Plug-in umhüllt die Shadowsocks-Verbindung, damit sie schwerer zu erkennen ist. Potatso hat diese Plug-ins eingebaut, du musst also nichts weiter installieren.

Plug-in Plug-in-Namen Unterstützt UDP
Simple Obfs obfs-local, simple-obfs, obfs ✅ obfs=http und obfs=tls Wird ohne das Plug-in an den Server gesendet
v2ray-plugin v2ray-plugin ✅ WebSocket, mit oder ohne TLS. Der QUIC-Modus wird nicht unterstützt. ❌
gost-plugin gost-plugin ✅ WebSocket, mit oder ohne TLS ❌
ShadowTLS shadow-tls ✅ Versionen 1, 2 und 3 ❌
Restls restls ✅ ❌
JLS jls ✅ ❌

Potatso importiert keinen Server, der ein anderes Plug-in braucht:

  • Cloak, xray-plugin und andere Plug-ins sind Programme, die dein Gerät neben Potatso ausführen müsste, was iOS nicht erlaubt.
  • kcptun und ech-tls-tunnel sind in Potatso noch nicht verfügbar.

Ein Plug-in einstellen

Wähle in den Servereinstellungen das Plug-in unter Plug-in und gib seine Optionen unter Plug-in-Parameter ein. Optionen sind key=value-Paare, durch Semikolons getrennt, wie in diesem Simple-Obfs-Beispiel:

obfs=tls;obfs-host=cdn.example.com

Ein einzelner Schlüssel wie tls schaltet diese Option ein. Lass jede Option weg, die du nicht brauchst; die Tabellen unten nennen den jeweiligen Standard.

Beim Import eines Servers stellt Potatso das Plug-in und seine Optionen für dich ein:

  • Ein ss://-Link trägt sie im Parameter plugin nach dem Plug-in-Namen: simple-obfs;obfs=tls;obfs-host=cdn.example.com.
  • Ein Clash- oder Mihomo-Abonnement trägt sie in plugin und plugin-opts.
  • Eine SIP008-Konfiguration oder eine config.json von shadowsocks-rust oder shadowsocks-libev trägt sie in plugin und plugin_opts.

Das sind in jeder Form dieselben Optionen. Listet dein Anbieter sie zeilenweise auf, wie in einem Clash-plugin-opts, schreibe jede als key=value und verbinde sie mit Semikolons.

Plug-in-Optionen

Simple Obfs

Option Beschreibung
obfs Erforderlich. http oder tls.
obfs-host Der Host-Header (http) oder der im TLS-Handshake gesendete Servername (tls). Ist er leer, verwendet Potatso die Adresse des Servers.
obfs-uri Nur http. Der Anfragepfad. Standard /.
http-method Nur http. Die Anfragemethode. Standard GET.

v2ray-plugin

Option Beschreibung
mode websocket, der Standard. Der QUIC-Modus wird nicht unterstützt.
tls Verbindet über TLS. Standardmäßig aus.
host Der Host-Header und der Servername für TLS. Ist er leer, verwendet Potatso die Adresse des Servers.
path Der WebSocket-Pfad. Standard /.
mux Multiplexing. Standardmäßig aus. Schalte es nur ein, wenn dein Server es nutzt.
skip-cert-verify Akzeptiert jedes Serverzertifikat. Nutze es nur mit einem Server, dem du vertraust.
header Ein zusätzlicher Anfrage-Header, als header=Name:Value. Wiederhole es für weitere Header.

gost-plugin

Option Beschreibung
mode Erforderlich. websocket.
tls Verbindet über TLS. Standardmäßig aus.
host Der Host-Header und der Servername für TLS. Standard bing.com, wie in gost.
path Der WebSocket-Pfad. Standard /.
mux Multiplexing. Standardmäßig an.
skip-cert-verify Akzeptiert jedes Serverzertifikat. Nutze es nur mit einem Server, dem du vertraust.
fingerprint Der SHA-256-Fingerabdruck des Serverzertifikats, um nur dieses Zertifikat zu akzeptieren.
header Ein zusätzlicher Anfrage-Header, als header=Name:Value. Wiederhole es für weitere Header.

ShadowTLS

Option Beschreibung
host Erforderlich. Der Servername der Tarn-Website, etwa www.example.com.
version Erforderlich. 1, 2 oder 3.
password Das Passwort. Die Versionen 2 und 3 brauchen es.
alpn Die ALPN-Liste, durch Kommas getrennt. Standard h2,http/1.1.
skip-cert-verify Akzeptiert jedes Zertifikat der Tarn-Website.

Restls

Option Beschreibung
host Erforderlich. Der Servername der Tarn-Website.
password Erforderlich. Das Passwort.
version-hint Erforderlich. tls13 oder tls12, je nachdem, wie dein Server eingerichtet ist.
restls-script Das Record-Skript, falls dein Anbieter eines angibt.

JLS

Option Beschreibung
host Erforderlich. Der Servername der Tarn-Website.
username Erforderlich. Der Benutzername.
password Erforderlich. Das Passwort.
alpn Die ALPN-Liste, durch Kommas getrennt. Standard h2,http/1.1.

Potatso verbindet nicht mit einem Server, wenn eine erforderliche Option fehlt oder ein Wert ungültig ist.

UDP

UDP ist bei Shadowsocks-Servern standardmäßig an und funktioniert mit jeder unterstützten Verschlüsselung. Schalte es in den Servereinstellungen aus, wenn dein Server UDP nicht weiterleitet.

UDP wird nicht durch ein Plug-in gesendet, daher trägt der Server mit einem anderen Plug-in als Simple Obfs nur TCP. Potatso unterstützt kein UDP-over-TCP (udp-over-tcp oder uot in einem Link oder Abonnement) und importiert keinen Server, der es verlangt.

Funktionsunterstützung

Funktion Unterstützt
SIP002-ss://-Links ✅ Einschließlich der älteren Base64-Form
SIP003-Plug-ins Nur die integrierten Plug-ins
SIP003u (UDP über ein Plug-in) ❌
AEAD-Verschlüsselungen (SIP004) ✅
SIP008-Online-Konfiguration ✅
SIP022-2022-Verschlüsselungen ✅ TCP und UDP
SIP023-Mehrbenutzer-Identitäts-Header ✅ Für die AES-2022-Verschlüsselungen
Stream-Verschlüsselungen ✅ Siehe Verschlüsselungen
UDP-over-TCP ❌
TCP Fast Open, MPTCP ❌

Einige Funktionen von shadowsocks-rust sind Einstellungen seines eigenen Client-Programms sslocal, und Potatso erledigt dieselbe Aufgabe auf seine Weise:

  • Lokale SOCKS5-, HTTP-, Tunnel-, Redir-, DNS- und TUN-Server: Potatso erfasst den Datenverkehr deines Geräts selbst.
  • Zugriffskontrolllisten (ACL): Nutze Regeln in deinem Profil.
  • Den schnellsten von mehreren Servern wählen: Nutze eine Proxy-Gruppe in deinem Profil.

Ein ss://-Link enthält einen ganzen Server in einer Zeile (SIP002):

ss://userinfo@host:port/?plugin=…#name
Teil Beschreibung
userinfo Die Verschlüsselung und das Passwort als cipher:password, entweder Base64-kodiert oder prozentkodiert. Eine 2022-Verschlüsselung muss die prozentkodierte Form verwenden.
host Serveradresse. Setze eine IPv6-Adresse in eckige Klammern, etwa [2001:db8::1].
port Serverport.
plugin Optional. Der Plug-in-Name und seine Optionen, durch Semikolons getrennt und prozentkodiert, etwa simple-obfs;obfs=tls;obfs-host=cdn.example.com.
name Optional. Der Name des Servers in Potatso.

Potatso importiert auch die ältere Form, in der alles vor dem # Base64-kodiert ist:

ss://base64(cipher:password@host:port)#name

Potatso akzeptiert Standard- und URL-sicheres Base64, mit oder ohne =-Auffüllung. Wenn Potatso einen Server teilt, bietet es die Base64- und prozentkodierten Formen von SIP002 sowie die ältere Form an.

Jedes Beispiel zeigt den Link zum Importieren. Das Passwort in den AEAD-Beispielen ist secret.

Ein einfacher Server mit aes-256-gcm:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Basic

Ein 2022-Server mit dem 16-Byte-Schlüssel MTIzNDU2Nzg5MDEyMzQ1Ng==:

ss://2022-blake3-aes-128-gcm:MTIzNDU2Nzg5MDEyMzQ1Ng%3D%3D@ss.example.com:8388#2022

Ein 2022-Mehrbenutzer-Server, mit Serverschlüssel und Benutzerschlüssel, getrennt durch einen Doppelpunkt (%3A):

ss://2022-blake3-aes-256-gcm:MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI%3D%3AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU%3D@ss.example.com:8388#Multi-user

Simple Obfs mit TLS, mit cdn.example.com als Servername:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:443/?plugin=simple-obfs%3Bobfs%3Dtls%3Bobfs-host%3Dcdn.example.com#Obfs

Die ältere Form des einfachen Servers:

ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy

Ein Server mit einer IPv6-Adresse:

ss://YWVzLTI1Ni1nY206c2VjcmV0@[2001:db8::1]:8388#IPv6
Navigation

Type to search…

↑↓ navigate↵ selectEsc close