Skip to content

VMess

Les chiffrements, transports, liens et fonctionnalités VMess pris en charge par Potatso.

Updated Voir en Markdown

Un serveur VMess se décrit par un UUID, un chiffrement qui protège le trafic et un transport qui porte la connexion, comme WebSocket ou gRPC, avec ou sans TLS. Potatso se connecte à un serveur lorsqu’il prend en charge son chiffrement, son transport et ses réglages TLS. 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 vmess://.

Vous pouvez ajouter un serveur VMess à la main, avec un lien vmess://, ou en important :

  • un abonnement Clash ou Mihomo,
  • une configuration Xray ou V2Ray,
  • une configuration Surge.

Potatso n’importe pas encore les serveurs VMess d’une configuration sing-box. Utilisez plutôt le lien vmess:// du serveur.

Chiffrements

Chiffrement Pris en charge
auto ✅ Potatso choisit aes-128-gcm, que tous les appareils Apple exécutent en matériel.
aes-128-gcm ✅
chacha20-poly1305 ✅
none ✅
zero ❌
aes-128-cfb (ancien) ❌

none et zero envoient votre trafic sans chiffrement. N’utilisez none qu’avec TLS, qui chiffre alors la connexion. Potatso ne se connecte pas avec zero, qui supprime aussi la protection contre la falsification : choisissez un autre chiffrement sur votre serveur.

alterId

Potatso utilise toujours l’authentification VMess actuelle, identique à alterId 0. Les serveurs dont l’utilisateur a encore un alterId supérieur à 0 l’acceptent aussi : vous pouvez donc laisser le serveur tel quel. Potatso ne prend pas en charge l’ancienne authentification que seul un alterId supérieur à 0 utilisait, que les serveurs ont abandonnée depuis 2022.

Transports

Transport net / type du lien Pris en charge Testé avec
Aucun (TCP simple) tcp, ou aucun ✅ Avec ou sans TLS Xray, sing-box, V2Ray
WebSocket ws ✅ Avec ou sans TLS et early data Xray, sing-box, V2Ray
gRPC grpc ✅ Avec ou sans TLS Xray, sing-box, V2Ray
HTTP/2 h2 ou http ✅ Avec TLS sing-box, V2Ray
HTTP Upgrade httpupgrade ✅ Avec ou sans TLS Xray, sing-box
TCP avec un en-tête HTTP tcp avec type=http ❌
XHTTP xhttp ❌
mKCP, QUIC kcp, quic ❌

Chaque transport pris en charge fonctionne avec l’UDP. Potatso n’importe pas un serveur dont il ne prend pas en charge le transport.

L’early data WebSocket envoie les premiers octets d’une connexion avec la négociation WebSocket, ce qui économise un aller-retour. Elle se définit par ?ed=2048 à la fin du chemin du lien, ou max-early-data dans un abonnement Clash.

Xray ne propose plus HTTP/2 : les serveurs Xray qui l’utilisaient utilisent désormais XHTTP, que Potatso ne prend pas encore en charge.

TLS

Réglage Clé Clash Champ 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 et h2 pour gRPC et HTTP/2.
Ignorer la vérification du certificat skip-cert-verify allowInsecure ✅
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.
Épinglage de certificat fingerprint pcs ❌
REALITY reality-opts security=reality ❌
Encrypted Client Hello (ECH) ech-opts ech ❌
Certificat CA personnalisé ❌

Désactiver la vérification du certificat permet à n’importe qui entre vous et le serveur de lire votre trafic. Potatso ne se connecte pas à un serveur VMess qui exige REALITY, ECH ou un épinglage de certificat, car se connecter sans eux n’offrirait pas la protection que demande le serveur. Utilisez VLESS ou Trojan pour REALITY.

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.

UDP

L’UDP est désactivé par défaut pour les serveurs VMess. Activez Relais UDP dans les réglages du serveur, ou définissez udp: true dans un abonnement Clash.

Potatso envoie chaque flux UDP sur sa propre connexion VMess, ce que tous les serveurs VMess acceptent. Il ne prend pas en charge les encodages XUDP et PacketAddr (packetEncoding dans un lien, packet-encoding ou xudp dans un abonnement Clash), qui transportent plusieurs flux UDP sur une seule connexion : un serveur configuré avec eux fonctionne quand même, et Potatso vous indique à l’import qu’il utilise son propre UDP à la place. Les apps qui ont besoin d’un NAT full-cone, comme certains jeux, peuvent ne pas fonctionner avec lui.

Avec le multiplexage activé, l’UDP passe par la connexion partagée.

Multiplexage

Potatso peut faire passer plusieurs connexions par une seule connexion VMess, défini avec smux dans un abonnement Clash :

Protocole protocol de smux Serveurs
Mux.Cool muxcool Xray, V2Ray et sing-box, sans réglage serveur
sing-mux h2mux, smux, yamux sing-box avec le multiplexage activé

Le TCP et l’UDP fonctionnent tous deux. Mux.Cool ferme les deux sens d’une connexion ensemble : une app qui cesse d’envoyer puis attend la réponse doit donc utiliser un serveur sans multiplexage.

Options de requête

Un client VMess choisit quelques options pour chaque connexion, et chaque serveur les accepte toutes. Potatso envoie toujours son trafic en blocs chiffrés et marque la fin de chaque envoi, et ne définit pas les autres :

Option Clé Clash Potatso
Flux de blocs Toujours activé
Masquage des blocs Désactivé
Bourrage global global-padding Désactivé. Potatso vous avertit quand vous importez un serveur qui le définit.
Longueur authentifiée authenticated-length Désactivé. Potatso vous avertit quand vous importez un serveur qui la définit.

Le masquage des blocs et le bourrage global cachent la taille de chaque bloc à quiconque observe. Sans eux, votre trafic reste illisible, mais son motif est plus facile à reconnaître.

Gros envois

Une seule connexion VMess peut envoyer environ 1 Gio. VMess numérote ses blocs chiffrés avec un compteur qui s’épuise après cela, et continuer affaiblirait le chiffrement : Potatso ferme donc la connexion. Les téléchargements n’ont pas de limite. Pour des envois de plus de 1 Gio sur une seule connexion, utilisez un serveur VLESS ou Trojan.

Fonctionnalités prises en charge

Fonctionnalité Pris en charge
Authentification AEAD (alterId 0) ✅
Ancienne authentification MD5 (alterId supérieur à 0) ❌ Les serveurs avec alterId supérieur à 0 acceptent l’authentification AEAD.
Chiffrements aes-128-gcm, chacha20-poly1305, none, auto ✅
Chiffrements zero et l’ancien aes-128-cfb ❌
Flux de blocs, marqueur de fin d’envoi ✅
Masquage des blocs, bourrage global, longueur authentifiée ❌ Les serveurs acceptent les connexions sans eux
UDP ✅ Une connexion par flux
Envois de plus d’environ 1 Gio sur une connexion ❌ Voir Gros envois
XUDP, PacketAddr ❌
Mux.Cool ✅ TCP et UDP
sing-mux (h2mux, smux, yamux) ✅ TCP et UDP
Transports Voir Transports
TLS Voir TLS
Liens de partage v2rayN (version 2) ✅
Liens de partage Xray ✅
Liens de partage Shadowrocket Import uniquement

Un lien vmess:// contient un serveur entier sur une ligne. Potatso importe trois formes et partage les deux premières.

La forme v2rayN, la plus courante, est un objet JSON encodé en Base64 :

vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})
Champ Description
v Version du format, 2.
ps Facultatif. Le nom du serveur dans Potatso.
add Adresse du serveur.
port Port du serveur.
id L’UUID.
aid alterId. Voir alterId.
scy Le chiffrement. Sans valeur, auto.
net Le transport : tcp, ws, grpc, h2 ou httpupgrade.
type none, ou http pour un en-tête HTTP en TCP, que Potatso ne prend pas en charge.
host L’en-tête Host pour WebSocket, HTTP/2 et HTTP Upgrade.
path Le chemin pour WebSocket, HTTP/2 et HTTP Upgrade, ou le nom du service pour gRPC. Un chemin WebSocket peut se terminer par ?ed=2048 pour l’early data.
tls tls pour utiliser TLS, ou vide.
sni, alpn, fp Le nom du serveur TLS, la liste ALPN et l’empreinte de navigateur.

La forme Xray est une URL, avec le chiffrement dans encryption et les réglages de transport et de TLS comme paramètres de requête :

vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name
Paramètre Description
type Le transport.
encryption Le chiffrement. Sans valeur, auto.
security tls, ou none.
sni, alpn, fp Le nom du serveur TLS, la liste ALPN et l’empreinte de navigateur.
host, path L’en-tête Host et le chemin, comme dans la forme v2rayN.
serviceName Le nom du service gRPC.
ed L’early data WebSocket, en octets.

Potatso importe aussi la forme de Shadowrocket, vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&….

Chaque exemple montre le lien à importer. L’UUID est b831381d-6324-4d53-ad4f-8cda48b30811.

WebSocket avec TLS et early data, via cdn.example.com, avec l’empreinte Chrome :

vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=

gRPC avec TLS et aes-128-gcm, nom de service vmess-grpc :

vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==

TCP simple avec chacha20-poly1305, dans la forme Xray :

vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:8080?type=tcp&encryption=chacha20-poly1305#Plain%20TCP

HTTP Upgrade avec TLS, dans la forme Xray :

vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:443?type=httpupgrade&security=tls&sni=cdn.example.com&host=cdn.example.com&path=%2Fupgrade&encryption=auto#HTTP%20Upgrade

Dans un abonnement Clash

proxies:
  - name: VMess WS
    type: vmess
    server: vmess.example.com
    port: 443
    uuid: b831381d-6324-4d53-ad4f-8cda48b30811
    alterId: 0
    cipher: auto
    udp: true
    tls: true
    servername: cdn.example.com
    network: ws
    ws-opts:
      path: /ray
      headers:
        Host: cdn.example.com
      max-early-data: 2048
      early-data-header-name: Sec-WebSocket-Protocol
Navigation

Type to search…

↑↓ navigate↵ selectEsc close