Skip to content

Shadowsocks

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

Updated Voir en Markdown

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://, ou en important :

  • un abonnement Clash ou Mihomo,
  • une configuration en ligne SIP008, depuis un fichier ou un lien,
  • un config.json shadowsocks-rust ou shadowsocks-libev,
  • une configuration Surge, ou une configuration Xray ou V2Ray.

Chiffrements

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
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, sing-box 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

Les chiffrements 2022 (SIP022) 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

Un serveur 2022 peut partager un port entre plusieurs utilisateurs (SIP023). 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 :

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

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

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 :

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:// 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

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

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

Fonctionnalité Pris en charge
Liens ss:// SIP002 ✅ Y compris l’ancienne forme Base64
Plug-ins SIP003 Uniquement les plug-ins intégrés
SIP003u (UDP via un plug-in) ❌
Chiffrements AEAD (SIP004) ✅
Configuration en ligne SIP008 ✅
Chiffrements 2022 SIP022 ✅ TCP et UDP
En-têtes d’identité multi-utilisateurs SIP023 ✅ Pour les chiffrements AES 2022
Chiffrements de flux ✅ Voir Chiffrements
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.

Un lien ss:// contient un serveur entier sur une ligne (SIP002) :

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 :

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.

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

Un serveur de base avec aes-256-gcm :

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

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

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

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 :

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

L’ancienne forme du serveur de base :

ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy

Un serveur avec une adresse IPv6 :

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

Type to search…

↑↓ navigate↵ selectEsc close