---
title: "Shadowsocks"
description: "Les chiffrements, plug-ins, liens et fonctionnalités Shadowsocks pris en charge par Potatso."
---

> 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

Un serveur Shadowsocks se décrit par un **chiffrement** et un **mot de passe**, et éventuellement un **plug-in** qui déguise la connexion. Potatso se connecte à un serveur lorsqu’il prend en charge le chiffrement et, le cas échéant, le plug-in. Utilisez les tableaux ci-dessous pour vérifier les réglages de votre serveur, tels que votre fournisseur les indique ou tels qu’ils figurent dans son lien `ss://`.

Vous pouvez ajouter un serveur Shadowsocks à la main, avec un [lien `ss://`](#links), ou en important :

- un abonnement Clash ou Mihomo,
- une configuration en ligne [SIP008](https://shadowsocks.org/doc/sip008.html), depuis un fichier ou un lien,
- un `config.json` shadowsocks-rust ou shadowsocks-libev,
- une configuration Surge, ou une configuration Xray ou V2Ray.

## Chiffrements {#ciphers}

Préférez un chiffrement 2022 si votre serveur en propose un, puis un chiffrement AEAD. Les chiffrements de flux ont des faiblesses connues : ne les utilisez qu’avec des serveurs qui n’offrent rien d’autre.

| Chiffrement | Type | Pris en charge |
| --- | --- | --- |
| `2022-blake3-aes-128-gcm`, `2022-blake3-aes-256-gcm` | 2022 | ✅ Avec [multi-utilisateur](#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` | Flux | ✅ |
| `aes-128-cfb`, `aes-192-cfb`, `aes-256-cfb` (aussi écrit `-cfb128`) | Flux | ✅ |
| `aes-128-cfb1`, `aes-192-cfb1`, `aes-256-cfb1` | Flux | ✅ |
| `aes-128-cfb8`, `aes-192-cfb8`, `aes-256-cfb8` | Flux | ✅ |
| `aes-128-ofb`, `aes-192-ofb`, `aes-256-ofb` | Flux | ✅ |
| `camellia-128-ctr`, `camellia-192-ctr`, `camellia-256-ctr` | Flux | ✅ |
| `camellia-128-cfb`, `camellia-192-cfb`, `camellia-256-cfb` (aussi écrit `-cfb128`) | Flux | ✅ |
| `camellia-128-cfb1`, `camellia-192-cfb1`, `camellia-256-cfb1` | Flux | ✅ |
| `camellia-128-cfb8`, `camellia-192-cfb8`, `camellia-256-cfb8` | Flux | ✅ |
| `camellia-128-ofb`, `camellia-192-ofb`, `camellia-256-ofb` | Flux | ✅ |
| `chacha20-ietf`, `chacha20`, `salsa20` | Flux | ✅ |
| `bf-cfb`, `rc4-md5`, `rc4`, `table` | Flux | ✅ |
| `none` (aussi écrit `plain`) | Sans chiffrement | ✅ |
| `cast5-cfb`, `des-cfb`, `idea-cfb`, `rc2-cfb`, `seed-cfb`, `rc4-md5-6` | Flux | ❌ ShadowsocksR uniquement |
| `xchacha20`, `xsalsa20` | Flux | ❌ |

Les noms ne sont pas sensibles à la casse : `AES-256-GCM` fonctionne donc comme `aes-256-gcm`.

`none` envoie votre trafic sans chiffrement. Ne l’utilisez qu’avec un plug-in qui chiffre lui-même la connexion, comme v2ray-plugin avec TLS.

Chaque chiffrement pris en charge est testé avec au moins un vrai serveur Shadowsocks : [shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust), [sing-box](https://sing-box.sagernet.org/) ou le serveur Python d’origine. Parmi les chiffrements AEAD ci-dessus, seuls les serveurs shadowsocks-rust proposent `aes-*-ccm`, `aes-*-gcm-siv` et `sm4-*`, et peu de fournisseurs les utilisent.

### Clés 2022 {#2022-keys}

Les chiffrements 2022 ([SIP022](https://shadowsocks.org/doc/sip022.html)) n’utilisent pas de mot de passe. Ils utilisent une clé : des octets aléatoires, encodés en Base64, de la longueur dont le chiffrement a besoin. `2022-blake3-aes-128-gcm` demande une clé de 16 octets et les autres chiffrements 2022 une clé de 32 octets. Utilisez la clé exactement telle que votre serveur l’a.

Potatso ne se connecte pas avec une clé de mauvaise longueur, ni avec un mot de passe qui n’est pas en Base64. Pour créer une nouvelle clé pour votre serveur, exécutez `openssl rand -base64 16` pour `2022-blake3-aes-128-gcm`, ou `openssl rand -base64 32` pour les autres chiffrements 2022.

### Serveurs multi-utilisateurs {#multi-user}

Un serveur 2022 peut partager un port entre plusieurs utilisateurs ([SIP023](https://shadowsocks.org/doc/sip023.html)). Chaque utilisateur a sa propre clé. Pour ces serveurs, réglez le mot de passe sur la clé du serveur et votre clé d’utilisateur, séparées par deux-points :

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

Seuls `2022-blake3-aes-128-gcm` et `2022-blake3-aes-256-gcm` prennent en charge les serveurs multi-utilisateurs.

## Plug-ins {#plugins}

Un plug-in enveloppe la connexion Shadowsocks pour la rendre plus difficile à détecter. Potatso intègre ces plug-ins : il n’y a rien d’autre à installer.

| Plug-in | Noms du plug-in | Pris en charge | UDP |
| --- | --- | --- | --- |
| Simple Obfs | `obfs-local`, `simple-obfs`, `obfs` | ✅ `obfs=http` et `obfs=tls` | Envoyé au serveur sans le plug-in |
| v2ray-plugin | `v2ray-plugin` | ✅ WebSocket, avec ou sans TLS. Le mode QUIC n’est pas pris en charge. | ❌ |
| gost-plugin | `gost-plugin` | ✅ WebSocket, avec ou sans TLS | ❌ |
| ShadowTLS | `shadow-tls` | ✅ Versions 1, 2 et 3 | ❌ |
| Restls | `restls` | ✅ | ❌ |
| JLS | `jls` | ✅ | ❌ |

Potatso n’importe pas un serveur qui exige un autre plug-in :

- Cloak, xray-plugin et les autres plug-ins sont des programmes que votre appareil devrait exécuter à côté de Potatso, ce qu’iOS n’autorise pas.
- kcptun et ech-tls-tunnel ne sont pas encore disponibles dans Potatso.

### Définir un plug-in {#set-plugin}

Dans les réglages du serveur, choisissez le plug-in sous **Plug-in**, puis saisissez ses options dans **Paramètre du plug-in**. Les options sont des paires `clé=valeur` séparées par des points-virgules, comme dans cet exemple Simple Obfs :

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

Une clé seule, comme `tls`, active cette option. Omettez toute option dont vous n’avez pas besoin ; les tableaux ci-dessous donnent chaque valeur par défaut.

Quand vous importez un serveur, Potatso définit le plug-in et ses options pour vous :

- Un [lien `ss://`](#links) les transporte dans son paramètre `plugin`, après le nom du plug-in : `simple-obfs;obfs=tls;obfs-host=cdn.example.com`.
- Un abonnement Clash ou Mihomo les transporte dans `plugin` et `plugin-opts`.
- Une configuration SIP008 ou un `config.json` shadowsocks-rust ou shadowsocks-libev les transporte dans `plugin` et `plugin_opts`.

Ce sont les mêmes options sous toutes les formes. Si votre fournisseur les liste une par ligne, comme dans un `plugin-opts` Clash, écrivez chacune sous la forme `clé=valeur` et joignez-les par des points-virgules.

### Options des plug-ins {#plugin-options}

**Simple Obfs**

| Option | Description |
| --- | --- |
| `obfs` | Obligatoire. `http` ou `tls`. |
| `obfs-host` | L’en-tête `Host` (`http`) ou le nom du serveur envoyé lors de la négociation TLS (`tls`). Vide, Potatso utilise l’adresse du serveur. |
| `obfs-uri` | `http` uniquement. Le chemin de la requête. Par défaut `/`. |
| `http-method` | `http` uniquement. La méthode de la requête. Par défaut `GET`. |

**v2ray-plugin**

| Option | Description |
| --- | --- |
| `mode` | `websocket`, la valeur par défaut. Le mode QUIC n’est pas pris en charge. |
| `tls` | Se connecte via TLS. Désactivé par défaut. |
| `host` | L’en-tête `Host`, et le nom du serveur pour TLS. Vide, Potatso utilise l’adresse du serveur. |
| `path` | Le chemin WebSocket. Par défaut `/`. |
| `mux` | Multiplexage. Désactivé par défaut. Activez-le uniquement si votre serveur l’utilise. |
| `skip-cert-verify` | Accepte n’importe quel certificat de serveur. À utiliser uniquement avec un serveur de confiance. |
| `header` | Un en-tête de requête supplémentaire, sous la forme `header=Nom:Valeur`. Répétez-le pour d’autres en-têtes. |

**gost-plugin**

| Option | Description |
| --- | --- |
| `mode` | Obligatoire. `websocket`. |
| `tls` | Se connecte via TLS. Désactivé par défaut. |
| `host` | L’en-tête `Host`, et le nom du serveur pour TLS. Par défaut `bing.com`, comme dans gost. |
| `path` | Le chemin WebSocket. Par défaut `/`. |
| `mux` | Multiplexage. Activé par défaut. |
| `skip-cert-verify` | Accepte n’importe quel certificat de serveur. À utiliser uniquement avec un serveur de confiance. |
| `fingerprint` | L’empreinte SHA-256 du certificat du serveur, pour n’accepter que ce certificat. |
| `header` | Un en-tête de requête supplémentaire, sous la forme `header=Nom:Valeur`. Répétez-le pour d’autres en-têtes. |

**ShadowTLS**

| Option | Description |
| --- | --- |
| `host` | Obligatoire. Le nom du serveur du site de couverture, comme `www.example.com`. |
| `version` | Obligatoire. `1`, `2` ou `3`. |
| `password` | Le mot de passe. Les versions 2 et 3 en ont besoin. |
| `alpn` | La liste ALPN, séparée par des virgules. Par défaut `h2,http/1.1`. |
| `skip-cert-verify` | Accepte n’importe quel certificat du site de couverture. |

**Restls**

| Option | Description |
| --- | --- |
| `host` | Obligatoire. Le nom du serveur du site de couverture. |
| `password` | Obligatoire. Le mot de passe. |
| `version-hint` | Obligatoire. `tls13` ou `tls12`, selon la configuration de votre serveur. |
| `restls-script` | Le script d’enregistrements, si votre fournisseur en donne un. |

**JLS**

| Option | Description |
| --- | --- |
| `host` | Obligatoire. Le nom du serveur du site de couverture. |
| `username` | Obligatoire. Le nom d’utilisateur. |
| `password` | Obligatoire. Le mot de passe. |
| `alpn` | La liste ALPN, séparée par des virgules. Par défaut `h2,http/1.1`. |

Potatso ne se connecte pas à un serveur quand une option obligatoire manque ou qu’une valeur n’est pas valide.

## UDP {#udp}

L’UDP est activé par défaut pour les serveurs Shadowsocks et fonctionne avec tous les chiffrements pris en charge. Désactivez-le dans les réglages du serveur si votre serveur ne relaie pas l’UDP.

L’UDP n’est pas envoyé via un plug-in : avec un plug-in autre que Simple Obfs, le serveur ne transporte donc que du TCP. Potatso ne prend pas en charge l’UDP sur TCP (`udp-over-tcp` ou `uot` dans un lien ou un abonnement) et n’importe pas un serveur qui l’exige.

## Fonctionnalités prises en charge {#features}

| Fonctionnalité | Pris en charge |
| --- | --- |
| Liens `ss://` [SIP002](https://shadowsocks.org/doc/sip002.html) | ✅ Y compris l’ancienne forme Base64 |
| Plug-ins [SIP003](https://shadowsocks.org/doc/sip003.html) | Uniquement les [plug-ins intégrés](#plugins) |
| SIP003u (UDP via un plug-in) | ❌ |
| [Chiffrements AEAD](https://shadowsocks.org/doc/aead.html) (SIP004) | ✅ |
| Configuration en ligne [SIP008](https://shadowsocks.org/doc/sip008.html) | ✅ |
| Chiffrements 2022 [SIP022](https://shadowsocks.org/doc/sip022.html) | ✅ TCP et UDP |
| En-têtes d’identité multi-utilisateurs [SIP023](https://shadowsocks.org/doc/sip023.html) | ✅ Pour les chiffrements AES 2022 |
| [Chiffrements de flux](https://shadowsocks.org/doc/stream.html) | ✅ Voir [Chiffrements](#ciphers) |
| UDP sur TCP | ❌ |
| TCP Fast Open, MPTCP | ❌ |

Certaines fonctionnalités de shadowsocks-rust sont des réglages de son propre programme client, `sslocal`, et Potatso fait le même travail à sa façon :

- Serveurs locaux SOCKS5, HTTP, tunnel, redir, DNS et TUN : Potatso capture lui-même le trafic de votre appareil.
- Listes de contrôle d’accès (ACL) : utilisez les règles de votre profil.
- Choisir le plus rapide de plusieurs serveurs : utilisez un groupe de proxys dans votre profil.

## Liens `ss://` {#links}

Un lien `ss://` contient un serveur entier sur une ligne ([SIP002](https://shadowsocks.org/doc/sip002.html)) :

```text
ss://userinfo@host:port/?plugin=…#name
```

| Partie | Description |
| --- | --- |
| `userinfo` | Le chiffrement et le mot de passe sous la forme `chiffrement:mot de passe`, encodés en Base64 ou en pourcentage. Un chiffrement 2022 doit utiliser la forme encodée en pourcentage. |
| `host` | Adresse du serveur. Placez une adresse IPv6 entre crochets, comme `[2001:db8::1]`. |
| `port` | Port du serveur. |
| `plugin` | Facultatif. Le nom du plug-in et ses options, séparés par des points-virgules et encodés en pourcentage, comme `simple-obfs;obfs=tls;obfs-host=cdn.example.com`. |
| `name` | Facultatif. Le nom du serveur dans Potatso. |

Potatso importe aussi l’ancienne forme, où tout ce qui précède le `#` est encodé en Base64 :

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

Potatso accepte le Base64 standard et le Base64 compatible URL, avec ou sans remplissage `=`. Quand Potatso partage un serveur, il propose les formes Base64 et encodée en pourcentage de SIP002 ainsi que l’ancienne forme.

### Exemples {#link-examples}

Chaque exemple montre le lien à importer. Le mot de passe dans les exemples AEAD est `secret`.

Un serveur de base avec `aes-256-gcm` :

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

Un serveur 2022 avec la clé de 16 octets `MTIzNDU2Nzg5MDEyMzQ1Ng==` :

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

Un serveur 2022 multi-utilisateurs, avec la clé du serveur et la clé de l’utilisateur séparées par deux-points (`%3A`) :

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

Simple Obfs avec TLS, en utilisant `cdn.example.com` comme nom de serveur :

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

L’ancienne forme du serveur de base :

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

Un serveur avec une adresse IPv6 :

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

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