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

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Shadowsocks

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](#links) oder per Import hinzufügen:

- eines Clash- oder Mihomo-Abonnements,
- einer [SIP008](https://shadowsocks.org/doc/sip008.html)-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 {#ciphers}

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](#multi-user) |
| `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](https://github.com/shadowsocks/shadowsocks-rust), [sing-box](https://sing-box.sagernet.org/) 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 {#2022-keys}

Die 2022-Verschlüsselungen ([SIP022](https://shadowsocks.org/doc/sip022.html)) 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 {#multi-user}

Ein 2022-Server kann einen Port auf mehrere Benutzer aufteilen ([SIP023](https://shadowsocks.org/doc/sip023.html)). 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:

```text
server-key:user-key
```

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

## Plug-ins {#plugins}

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 {#set-plugin}

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:

```text
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](#links) 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 {#plugin-options}

**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}

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 {#features}

| Funktion | Unterstützt |
| --- | --- |
| [SIP002](https://shadowsocks.org/doc/sip002.html)-`ss://`-Links | ✅ Einschließlich der älteren Base64-Form |
| [SIP003](https://shadowsocks.org/doc/sip003.html)-Plug-ins | Nur die [integrierten Plug-ins](#plugins) |
| SIP003u (UDP über ein Plug-in) | ❌ |
| [AEAD-Verschlüsselungen](https://shadowsocks.org/doc/aead.html) (SIP004) | ✅ |
| [SIP008](https://shadowsocks.org/doc/sip008.html)-Online-Konfiguration | ✅ |
| [SIP022](https://shadowsocks.org/doc/sip022.html)-2022-Verschlüsselungen | ✅ TCP und UDP |
| [SIP023](https://shadowsocks.org/doc/sip023.html)-Mehrbenutzer-Identitäts-Header | ✅ Für die AES-2022-Verschlüsselungen |
| [Stream-Verschlüsselungen](https://shadowsocks.org/doc/stream.html) | ✅ Siehe [Verschlüsselungen](#ciphers) |
| 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.

## `ss://`-Links {#links}

Ein `ss://`-Link enthält einen ganzen Server in einer Zeile ([SIP002](https://shadowsocks.org/doc/sip002.html)):

```text
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:

```text
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.

### Beispiele {#link-examples}

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

Ein einfacher Server mit `aes-256-gcm`:

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

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

```text
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`):

```text
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:

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

Die ältere Form des einfachen Servers:

```text
ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy
```

Ein Server mit einer IPv6-Adresse:

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

Source: https://potatso.com/docs/de/protocols/shadowsocks/index.mdx
