Ein ShadowsocksR-Server (SSR) wird durch drei Einstellungen beschrieben: eine Verschlüsselung, ein Protokoll und eine Obfs-Methode (Verschleierung). Potatso verbindet sich nur mit einem Server, wenn es alle drei unterstützt. Prüfe anhand der Tabellen unten die Einstellungen deines Servers, wie dein Anbieter sie angibt oder wie sie in seinem ssr://-Link stehen.
Einen SSR-Server kannst du von Hand, mit einem ssr://-Link oder aus einem Clash- oder Mihomo-Abonnement hinzufügen. Potatso behält das Protokoll und Obfs, die dein Anbieter nennt, einschließlich der _compatible-Formen.
Verschlüsselungen
| Verschlüsselung | Unterstützt |
|---|---|
none |
✅ |
aes-128-ctr, aes-192-ctr, aes-256-ctr |
✅ |
aes-128-cfb, aes-192-cfb, aes-256-cfb |
✅ |
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb |
✅ |
chacha20, chacha20-ietf |
✅ |
salsa20 |
✅ |
bf-cfb |
✅ |
rc4-md5 |
✅ |
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb |
✅ |
rc4-md5-6, table |
✅ |
xchacha20, xsalsa20 |
❌ |
AEAD-Verschlüsselungen wie aes-256-gcm sind Shadowsocks-Verschlüsselungen, keine von ShadowsocksR. Nennt dein Anbieter eine für einen SSR-Server, prüfe, ob der Server tatsächlich ein Shadowsocks-Server ist.
Protokolle
| Protokoll | Unterstützt | Mehrbenutzer |
|---|---|---|
origin |
✅ | — |
verify_deflate |
✅ | — |
auth_sha1, auth_sha1_v2 |
Veraltet (nicht gegen einen echten Server getestet) | — |
auth_sha1_v4 |
✅ | — |
auth_sha1_v4_compatible |
✅ | — |
auth_aes128_md5 |
✅ | ✅ |
auth_aes128_sha1 |
✅ | ✅ |
auth_chain_a |
✅ | ✅ |
auth_chain_b |
✅ | ✅ |
verify_simple, verify_sha1, auth_simple |
Veraltet (als origin importiert) |
— |
Mehrbenutzer-Server teilen einen Port auf mehrere Benutzer auf. Setze bei diesen den Protokollparameter (protocol-param, oder protoparam in einem ssr://-Link) auf uid:key, mit der Benutzer-ID und dem Schlüssel von deinem Anbieter.
Aktuelle ShadowsocksR-Server bieten auth_sha1 und auth_sha1_v2 nicht mehr an. Potatso verbindet damit weiterhin, aber sie sind nicht gegen einen echten Server getestet, bevorzuge also ein anderes Protokoll, falls dein Anbieter eines anbietet.
Ältere Versionen von Potatso listeten verify_simple, verify_sha1 und auth_simple, verbanden aber immer mit origin. Potatso importiert sie weiterhin als origin und zeigt dabei eine Warnung an.
Obfs
| Obfs | Unterstützt |
|---|---|
plain |
✅ |
http_simple, http_simple_compatible |
✅ |
http_post, http_post_compatible |
✅ |
tls1.2_ticket_auth, tls1.2_ticket_auth_compatible |
✅ |
tls1.2_ticket_fastauth, tls1.2_ticket_fastauth_compatible |
✅ |
random_head, random_head_compatible |
✅ Veraltet |
Ein Name mit _compatible bedeutet, dass der Server auch Clients akzeptiert, die keine Verschleierung nutzen. Potatso verwendet die Obfs-Methode, die der Name angibt, du kannst also den Namen behalten, den dein Anbieter nennt.
Bei den HTTP-Methoden legt der Obfs-Parameter (obfs-param, oder obfsparam in einem ssr://-Link) den Host-Header fest. Er kann ein einzelner Host sein, eine durch Kommas getrennte Liste von Hosts oder ein Block eigener Header. Ist er leer, verwendet Potatso die Adresse des Servers. Bei den TLS-Methoden legt er den im TLS-Handshake gesendeten Servernamen fest.
UDP
UDP funktioniert mit jedem unterstützten Protokoll und ist bei SSR-Servern standardmäßig an. Schalte es in den Servereinstellungen aus, wenn dein Server UDP nicht weiterleitet.
ssr://-Links
Ein ssr://-Link enthält einen ganzen Server in einer Zeile. Alles nach ssr:// ist Base64-kodiert:
ssr://base64(host:port:protocol:cipher:obfs:base64(password)/?obfsparam=…&protoparam=…&remarks=…)Der Teil vor /? besteht aus sechs durch Doppelpunkte getrennten Feldern:
| Feld | Beschreibung |
|---|---|
host |
Serveradresse. Setze eine IPv6-Adresse in eckige Klammern, etwa [2001:db8::1]. |
port |
Serverport. |
protocol |
Eines der oben genannten Protokolle. Ist es leer, verwendet Potatso origin. |
cipher |
Eine der oben genannten Verschlüsselungen. Erforderlich. |
obfs |
Eine der oben genannten Obfs-Methoden. Ist es leer, verwendet Potatso plain. |
password |
Das Passwort, Base64-kodiert. |
Der Teil nach /? ist optional. Jeder Wert ist Base64-kodiert:
| Parameter | Beschreibung |
|---|---|
obfsparam |
Der Obfs-Parameter, etwa der Host für http_simple. |
protoparam |
Der Protokollparameter, etwa uid:key für einen Mehrbenutzer-Server. |
remarks |
Der Name des Servers in Potatso. |
Potatso ignoriert andere Parameter, etwa group, udpport und uot, sowie jeden #name am Ende des Links. UDP ist nicht Teil des Links: Es ist standardmäßig an, und du kannst es nach dem Import ausschalten.
Potatso akzeptiert Standard- und URL-sicheres Base64, mit oder ohne =-Auffüllung. Die Namen unterscheiden nicht zwischen Groß- und Kleinschreibung, AUTH_CHAIN_A funktioniert also genauso wie auth_chain_a. Wenn Potatso einen Server teilt, schreibt es URL-sicheres Base64 ohne Auffüllung.
Beispiele
Jedes Beispiel zeigt zuerst den dekodierten Text, dann den Link zum Importieren. Das Passwort in jedem Beispiel ist secret.
Ein einfacher Server ohne Protokoll-Plug-in und ohne Verschleierung:
ssr.example.com:8388:origin:aes-256-cfb:plain:c2VjcmV0/?remarks=QmFzaWMssr://c3NyLmV4YW1wbGUuY29tOjgzODg6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOmMyVmpjbVYwLz9yZW1hcmtzPVFtRnphV00TLS-Verschleierung, mit cdn.example.com als Servername:
ssr.example.com:443:auth_aes128_md5:chacha20-ietf:tls1.2_ticket_auth:c2VjcmV0/?obfsparam=Y2RuLmV4YW1wbGUuY29t&remarks=VExTIG9iZnMssr://c3NyLmV4YW1wbGUuY29tOjQ0MzphdXRoX2FlczEyOF9tZDU6Y2hhY2hhMjAtaWV0Zjp0bHMxLjJfdGlja2V0X2F1dGg6YzJWamNtVjAvP29iZnNwYXJhbT1ZMlJ1TG1WNFlXMXdiR1V1WTI5dCZyZW1hcmtzPVZFeFRJRzlpWm5NEin Mehrbenutzer-Server: Benutzer 2173 mit Schlüssel userkey, der Verschlüsselung none und HTTP-Verschleierung:
ssr.example.com:8080:auth_chain_a:none:http_simple:c2VjcmV0/?obfsparam=Y2RuLmV4YW1wbGUuY29t&protoparam=MjE3Mzp1c2Vya2V5&remarks=TXVsdGktdXNlcgssr://c3NyLmV4YW1wbGUuY29tOjgwODA6YXV0aF9jaGFpbl9hOm5vbmU6aHR0cF9zaW1wbGU6YzJWamNtVjAvP29iZnNwYXJhbT1ZMlJ1TG1WNFlXMXdiR1V1WTI5dCZwcm90b3BhcmFtPU1qRTNNenAxYzJWeWEyVjUmcmVtYXJrcz1UWFZzZEdrdGRYTmxjZwEin Server mit einer IPv6-Adresse:
[2001:db8::1]:8388:auth_sha1_v4:rc4-md5:http_post:c2VjcmV0/?remarks=SVB2Ngssr://WzIwMDE6ZGI4OjoxXTo4Mzg4OmF1dGhfc2hhMV92NDpyYzQtbWQ1Omh0dHBfcG9zdDpjMlZqY21WMC8_cmVtYXJrcz1TVkIyTmc