Un serveur VLESS se décrit par un ID utilisateur (un UUID), sa sécurité (aucune, TLS ou REALITY) et un transport qui porte la connexion, comme WebSocket ou gRPC. Il peut aussi utiliser le flux Vision, qui masque le motif « TLS dans TLS » du trafic HTTPS proxifié, et VLESS Encryption, la couche de chiffrement post-quantique de Xray. Potatso se connecte à un serveur lorsqu’il prend en charge tous ces réglages. 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 vless://.
Vous pouvez ajouter un serveur VLESS à la main, avec un lien vless://, ou en important :
- un abonnement Clash ou Mihomo,
- une configuration Xray ou V2Ray.
Potatso n’importe pas encore les serveurs VLESS d’une configuration sing-box. Utilisez plutôt le lien vless:// du serveur.
Chaque réglage pris en charge ci-dessous est testé avec de vrais serveurs Xray et sing-box.
ID utilisateur
L’ID utilisateur est normalement un UUID, comme 3971e1b2-18a3-4f83-8fa6-bf9b142ee258. Les serveurs Xray acceptent aussi comme ID n’importe quel autre texte d’au plus 30 caractères, et le transforment en UUID de la même façon que tous les clients. Potatso aussi : utilisez donc l’ID exactement comme votre fournisseur vous le donne.
Transports
| Transport | type du lien |
Pris en charge | Testé avec |
|---|---|---|---|
| Sans transport (TCP brut) | tcp, raw, ou aucun |
✅ | Xray, sing-box |
| WebSocket | ws |
✅ Avec ou sans early data | Xray, sing-box |
| gRPC | grpc |
✅ | Xray, sing-box |
| HTTP Upgrade | httpupgrade |
✅ | Xray, sing-box |
| XHTTP | xhttp, splithttp |
✅ En mode stream-one et auto |
Xray |
| HTTP/2 | http ou h2 |
✅ | sing-box |
| mKCP | kcp |
❌ | |
| QUIC | quic |
❌ | |
| TCP avec obfuscation d’en-tête HTTP | tcp avec headerType=http |
❌ |
Chaque transport fonctionne avec et sans TLS, et avec l’UDP. Potatso n’importe pas un serveur dont il ne prend pas en charge le transport.
Xray ne propose plus HTTP/2 ni QUIC : les serveurs Xray qui les utilisaient utilisent désormais XHTTP.
XHTTP
XHTTP (anciennement SplitHTTP) a plusieurs modes. Potatso envoie toute la connexion comme une seule requête HTTP (stream-one). Un serveur Xray l’accepte dans son mode auto par défaut ainsi que dans les modes stream-one et stream-up : un lien avec mode=auto, ou sans mode, fonctionne donc.
Potatso ne prend pas en charge les modes client packet-up et stream-up, et n’importe pas un lien qui les demande. Le paramètre extra d’un lien XHTTP n’est pas pris en charge : Potatso l’ignore. Dans l’app, vous ne pouvez modifier les serveurs XHTTP qu’avec TLS ou REALITY ; un serveur XHTTP importé sans TLS fonctionne quand même.
Sécurité
| Sécurité | security du lien |
Pris en charge |
|---|---|---|
| Aucune | none, ou aucune |
✅ Votre trafic n’est pas chiffré, sauf si le serveur utilise VLESS Encryption. |
| TLS | tls |
✅ |
| REALITY | reality |
✅ Sans transport, avec gRPC ou XHTTP |
Réglages TLS
| Réglage | Clé Clash | Paramètre de lien | Pris en charge |
|---|---|---|---|
| Nom du serveur (SNI) | servername |
sni |
✅ Sans nom, Potatso utilise l’adresse du serveur. |
| ALPN | alpn |
alpn |
✅ Sans ALPN, Potatso envoie http/1.1 pour WebSocket, h2 pour gRPC, HTTP/2 et XHTTP, et rien pour les autres. |
| Ignorer la vérification du certificat | skip-cert-verify |
allowInsecure, insecure |
✅ |
| Épinglage de certificat (SHA-256) | fingerprint |
pcs |
✅ Un certificat |
| Vérifier le certificat par rapport à un autre nom | vcn |
❌ Potatso vérifie le certificat par rapport au nom du serveur. | |
| Empreinte de navigateur | client-fingerprint |
fp |
✅ chrome, firefox, safari, ios, android, edge et random. Les autres noms se connectent avec une négociation par défaut. |
| Encrypted Client Hello (ECH) | ech-opts |
ech |
✅ Avec la configuration ECH du lien ou de l’abonnement |
| Certificat CA personnalisé | ❌ | ||
| Certificat client TLS | certificate, private-key |
❌ |
Désactiver la vérification du certificat permet à n’importe qui entre vous et le serveur de lire votre trafic. Épinglez plutôt le certificat du serveur s’il est autosigné : saisissez le SHA-256 de son certificat comme épinglage de certificat. Potatso épingle un seul certificat ; il n’importe pas un lien qui en liste plusieurs dans pcs.
Une empreinte de navigateur fait ressembler la négociation TLS de la connexion à celle de ce navigateur. Elle ne change pas ce que le serveur doit prendre en charge.
REALITY
Un serveur REALITY emprunte le certificat TLS d’un autre site web, il n’a donc pas besoin du sien. Saisissez la clé publique et l'ID court du serveur tels que votre fournisseur les indique, et le nom du serveur du site web auquel le serveur emprunte. Le spx du lien (spider path) n’est pas nécessaire pour se connecter, et Potatso l’ignore.
REALITY exige une empreinte de navigateur : quand votre lien ou vos réglages n’en ont pas, Potatso utilise chrome. Avec REALITY, android et les noms que Potatso ne connaît pas se connectent aussi comme chrome.
REALITY fonctionne sans transport, avec gRPC et avec XHTTP.
Flux Vision
| Flux | flow du lien |
Pris en charge |
|---|---|---|
| Aucun | aucun | ✅ |
| Vision | xtls-rprx-vision |
✅ |
| Vision, UDP 443 autorisé | xtls-rprx-vision-udp443 |
✅ |
xtls-rprx-direct, xtls-rprx-splice et les autres anciens flux XTLS |
❌ Xray les a supprimés |
Vision ne fonctionne qu’avec TLS ou REALITY et sans transport : Potatso n’enregistre ni n’importe un serveur Vision avec un autre transport ou sans TLS. Il fonctionne aussi avec VLESS Encryption par-dessus TLS.
Avec Vision, l’UDP est transporté comme Xray le transporte, via Mux.Cool, que les serveurs Xray et sing-box acceptent tous deux. Le client Xray refuse l’UDP vers le port 443 (QUIC) avec xtls-rprx-vision, pour que les navigateurs se replient sur le TCP ; Potatso le transporte avec les deux flux.
VLESS Encryption
VLESS Encryption (mlkem768x25519plus) est la couche de chiffrement post-quantique de Xray : un échange de clés ML-KEM-768 et X25519 sous la connexion VLESS. Le réglage decryption du serveur a une valeur encryption correspondante pour les clients, qui ressemble à ceci :
mlkem768x25519plus.native.0rtt.<key>| Réglage | Pris en charge |
|---|---|
Modes native, xorpub et random |
✅ |
1rtt et 0rtt (connexions reprises) |
✅ |
| Serveur authentifié avec une clé X25519 ou ML-KEM-768 | ✅ |
| Sans transport et sans TLS | ✅ |
| Par-dessus TLS | ✅ Aussi avec Vision |
| Vision sans TLS | ❌ |
Potatso conserve la valeur encryption d’un lien, d’un abonnement Clash ou d’une configuration Xray. Vous ne pouvez pas encore en saisir une dans les réglages du serveur.
Multiplexage
Potatso peut faire passer plusieurs connexions par une seule connexion VLESS, défini avec smux dans un abonnement Clash :
| Protocole | smux.protocol Clash |
Serveurs | Pris en charge |
|---|---|---|---|
| Mux.Cool (Xray) | muxcool |
Xray, sing-box | ✅ TCP et UDP |
| Multiplexage sing-box | smux, yamux, h2mux |
sing-box, avec le multiplexage activé | ✅ TCP et UDP, avec ou sans bourrage |
Avec Vision, Mux.Cool ne transporte que l’UDP et chaque connexion TCP garde sa propre connexion, comme dans Xray. Le multiplexage sing-box ne fonctionne pas avec Vision, et Potatso n’importe pas un serveur Vision qui le demande.
Les réglages mux de Xray dans une configuration Xray ne sont pas importés.
UDP
VLESS transporte l’UDP sur la même connexion que le TCP. L’UDP est désactivé par défaut, comme dans Clash. Activez Relais UDP dans les réglages du serveur si votre serveur relaie l’UDP : Xray et sing-box le font tous deux. Un abonnement Clash l’active avec udp: true.
Chaque flux UDP obtient sa propre connexion vers le serveur, et chaque destination son propre flux. Potatso ne prend pas en charge XUDP ni packetaddr (packetEncoding dans un lien, packet-encoding ou xudp dans un abonnement) : les serveurs acceptent l’UDP de Potatso sans eux, et Potatso ignore le réglage.
Fonctionnalités prises en charge
| Fonctionnalité | Pris en charge |
|---|---|
| Protocole VLESS version 0 : commandes TCP et UDP | ✅ |
| UUID et ID utilisateur textuels | ✅ |
| Plusieurs utilisateurs sur un serveur | ✅ Chacun avec son propre ID |
Flux Vision (xtls-rprx-vision, -udp443) |
✅ Voir Vision |
VLESS Encryption (mlkem768x25519plus) |
✅ Voir VLESS Encryption |
| TLS, REALITY, ECH, épinglage de certificat, empreintes de navigateur | ✅ Voir Sécurité |
| Transports WebSocket, gRPC, HTTP Upgrade, HTTP/2 | ✅ Voir Transports |
| XHTTP | Modes stream-one et auto |
| mKCP, QUIC, obfuscation d’en-tête HTTP en TCP | ❌ |
| Mux.Cool | ✅ |
| XUDP, packetaddr | ❌ L’UDP utilise la commande UDP simple |
| Multiplexage sing-box (smux, yamux, h2mux) | ✅ |
Proxy inverse (reverse de VLESS) |
❌ C’est une fonctionnalité serveur |
Liens vless:// (standard de lien de partage Xray) |
✅ |
Liens vless://
Un lien vless:// contient un serveur entier sur une ligne :
vless://id@host:port?type=…&security=…&…#name| Partie | Description |
|---|---|
id |
L’ID utilisateur. |
host |
Adresse du serveur. Placez une adresse IPv6 entre crochets, comme [2001:db8::1]. |
port |
Port du serveur. |
encryption |
none, ou une valeur VLESS Encryption. |
flow |
Facultatif. xtls-rprx-vision ou xtls-rprx-vision-udp443. |
type |
Le transport. |
security |
none, tls ou reality. |
sni, alpn, fp, pcs, ech, allowInsecure |
Réglages TLS. |
pbk, sid |
La clé publique et l’ID court REALITY. |
host, path |
L’en-tête Host et le chemin de WebSocket, HTTP Upgrade, HTTP/2 et XHTTP. Un chemin WebSocket peut transporter de l’early data sous la forme ?ed=2048. |
serviceName |
Le nom du service gRPC. |
mode |
Le mode XHTTP. |
name |
Facultatif. Le nom du serveur dans Potatso. |
Quand Potatso partage un serveur VLESS, il écrit un lien sous cette forme.
Exemples
Chaque exemple montre le lien à importer. L’ID utilisateur est 3971e1b2-18a3-4f83-8fa6-bf9b142ee258.
TLS sans transport :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&sni=vless.example.com&type=tcp#TLSREALITY avec Vision, en empruntant www.example.com :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=reality&sni=www.example.com&fp=chrome&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&type=tcp&flow=xtls-rprx-vision#REALITY-VisionWebSocket sur TLS via un CDN, avec 2048 octets d’early data :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws%3Fed%3D2048#WebSocketgRPC sur TLS :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=grpc&serviceName=gun#gRPCHTTP Upgrade sur TLS :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#HTTPUpgradeXHTTP sur TLS :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=xhttp&host=cdn.example.com&path=%2Fxh&mode=auto#XHTTPHTTP/2 sur TLS :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2VLESS Encryption sans TLS :
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:8443?security=none&encryption=mlkem768x25519plus.native.0rtt.u7dtLE6KgE4mjeBK3oYdNMw6MJB47Ijr_9AG2avwSmY&type=tcp#Encryption