Skip to content

VMess

Le cifrature, i trasporti, i link e le funzioni di VMess supportati da Potatso.

Updated Visualizza come Markdown

Un server VMess è descritto da un UUID, da una cifratura che protegge il traffico e da un trasporto che porta la connessione, come WebSocket o gRPC, con o senza TLS. Potatso si connette a un server quando supporta la cifratura, il trasporto e le impostazioni TLS del server. Usa le tabelle qui sotto per controllare le impostazioni del tuo server, come le indica il tuo provider o come compaiono nel suo link vmess://.

Puoi aggiungere un server VMess a mano, con un link vmess://, oppure importando:

  • una sottoscrizione Clash o Mihomo,
  • una configurazione Xray o V2Ray,
  • una configurazione Surge.

Potatso non importa ancora server VMess da una configurazione sing-box. Usa invece il link vmess:// del server.

Cifrature

Cifratura Supportata
auto ✅ Potatso sceglie aes-128-gcm, che ogni dispositivo Apple esegue in hardware.
aes-128-gcm ✅
chacha20-poly1305 ✅
none ✅
zero ❌
aes-128-cfb (legacy) ❌

none e zero inviano il tuo traffico senza cifratura. Usa none solo con TLS, che allora cifra la connessione. Potatso non si connette con zero, che elimina anche la protezione contro le manomissioni: scegli un'altra cifratura sul tuo server.

alterId

Potatso usa sempre l'autenticazione VMess attuale, che equivale a alterId 0. Anche i server il cui utente ha ancora un alterId superiore a 0 la accettano, quindi puoi lasciare il server com'è. Potatso non supporta la vecchia autenticazione usata solo con alterId superiore a 0, che i server hanno dichiarato obsoleta dal 2022.

Trasporti

Trasporto net / type del link Supportato Testato con
Nessuno (TCP semplice) tcp, o nessuno ✅ Con o senza TLS Xray, sing-box, V2Ray
WebSocket ws ✅ Con o senza TLS e early data Xray, sing-box, V2Ray
gRPC grpc ✅ Con o senza TLS Xray, sing-box, V2Ray
HTTP/2 h2 o http ✅ Con TLS sing-box, V2Ray
HTTP Upgrade httpupgrade ✅ Con o senza TLS Xray, sing-box
TCP con un'intestazione HTTP tcp con type=http ❌
XHTTP xhttp ❌
mKCP, QUIC kcp, quic ❌

Ogni trasporto supportato funziona con UDP. Potatso non importa un server il cui trasporto non supporta.

L'early data di WebSocket invia i primi byte di una connessione insieme all'handshake WebSocket, risparmiando un round trip. Si imposta con ?ed=2048 alla fine del percorso del link, oppure con max-early-data in una sottoscrizione Clash.

Xray non offre più HTTP/2: i server Xray che lo usavano ora usano XHTTP, che Potatso non supporta ancora.

TLS

Impostazione Chiave Clash Campo del link Supportata
Nome del server (SNI) servername sni ✅ Senza di esso, Potatso usa l'indirizzo del server.
ALPN alpn alpn ✅ Senza di esso, Potatso invia http/1.1 per WebSocket e h2 per gRPC e HTTP/2.
Salta verifica certificato skip-cert-verify allowInsecure ✅
Impronta del browser client-fingerprint fp ✅ chrome, firefox, safari, ios, android, edge e random. Gli altri nomi si connettono con un handshake predefinito.
Pin del certificato fingerprint pcs ❌
REALITY reality-opts security=reality ❌
Encrypted Client Hello (ECH) ech-opts ech ❌
Certificato CA personalizzato ❌

Disattivare la verifica del certificato permette a chiunque si trovi tra te e il server di leggere il tuo traffico. Potatso non si connette a un server VMess che richiede REALITY, ECH o un pin del certificato, perché connettersi senza di essi non darebbe la protezione richiesta dal server. Usa VLESS o Trojan per REALITY.

Un'impronta del browser fa sì che l'handshake TLS della connessione somigli a quello di quel browser. Non cambia ciò che il server deve supportare.

UDP

UDP è disattivato per impostazione predefinita per i server VMess. Attiva Relay UDP nelle impostazioni del server, oppure imposta udp: true in una sottoscrizione Clash.

Potatso invia ogni flusso UDP su una propria connessione VMess, cosa che ogni server VMess accetta. Non supporta le codifiche XUDP e PacketAddr (packetEncoding in un link, packet-encoding o xudp in una sottoscrizione Clash), che trasportano molti flussi UDP su una sola connessione: un server configurato con esse funziona comunque, e Potatso ti avvisa all'importazione che usa invece il proprio UDP. Le app che richiedono full-cone NAT, come alcuni giochi, potrebbero non funzionare.

Con il multiplexing attivo, UDP viaggia invece sulla connessione condivisa.

Multiplexing

Potatso può far passare più connessioni su una sola connessione VMess, impostato con smux in una sottoscrizione Clash:

Protocollo protocol di smux Server
Mux.Cool muxcool Xray, V2Ray e sing-box, senza alcuna impostazione sul server
sing-mux h2mux, smux, yamux sing-box con il multiplexing attivo

Funzionano sia TCP sia UDP. Mux.Cool chiude insieme entrambe le direzioni di una connessione, quindi un'app che smette di inviare e poi aspetta la risposta dovrebbe usare un server senza multiplexing.

Opzioni della richiesta

Un client VMess sceglie alcune opzioni per ogni connessione, e ogni server le accetta tutte. Potatso invia sempre il suo traffico in blocchi cifrati e segna la fine di ogni upload, e non imposta le altre:

Opzione Chiave Clash Potatso
Flusso a blocchi Sempre attivo
Mascheramento dei blocchi Disattivato
Padding globale global-padding Disattivato. Potatso ti avvisa quando importi un server che lo imposta.
Lunghezza autenticata authenticated-length Disattivata. Potatso ti avvisa quando importi un server che la imposta.

Il mascheramento dei blocchi e il padding globale nascondono a chi osserva la dimensione di ogni blocco. Senza di essi, il tuo traffico resta comunque illeggibile, ma il suo schema è più facile da riconoscere.

Upload di grandi dimensioni

Una singola connessione VMess può caricare circa 1 GiB. VMess numera i suoi blocchi cifrati con un contatore che si esaurisce dopo quella quantità, e proseguire indebolirebbe la cifratura, quindi Potatso chiude invece la connessione. I download non hanno limiti. Per upload superiori a 1 GiB in una sola connessione, usa un server VLESS o Trojan.

Funzioni supportate

Funzione Supportata
Autenticazione AEAD (alterId 0) ✅
Autenticazione MD5 legacy (alterId superiore a 0) ❌ I server con alterId superiore a 0 accettano l'autenticazione AEAD.
Cifrature aes-128-gcm, chacha20-poly1305, none, auto ✅
Cifrature zero e la legacy aes-128-cfb ❌
Flusso a blocchi, marcatore di fine upload ✅
Mascheramento dei blocchi, padding globale, lunghezza autenticata ❌ I server accettano connessioni senza di essi
UDP ✅ Una connessione per flusso
Upload oltre circa 1 GiB su una connessione ❌ Vedi Upload di grandi dimensioni
XUDP, PacketAddr ❌
Mux.Cool ✅ TCP e UDP
sing-mux (h2mux, smux, yamux) ✅ TCP e UDP
Trasporti Vedi Trasporti
TLS Vedi TLS
Link di condivisione v2rayN (versione 2) ✅
Link di condivisione Xray ✅
Link di condivisione Shadowrocket Solo importazione

Un link vmess:// contiene un intero server in una riga. Potatso importa tre forme e ne condivide le prime due.

La forma v2rayN, la più comune, è un oggetto JSON codificato in Base64:

vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})
Campo Descrizione
v Versione del formato, 2.
ps Facoltativo. Il nome del server in Potatso.
add Indirizzo del server.
port Porta del server.
id L'UUID.
aid alterId. Vedi alterId.
scy La cifratura. Senza di essa, auto.
net Il trasporto: tcp, ws, grpc, h2 o httpupgrade.
type none, oppure http per un'intestazione HTTP su TCP, che Potatso non supporta.
host L'intestazione Host per WebSocket, HTTP/2 e HTTP Upgrade.
path Il percorso per WebSocket, HTTP/2 e HTTP Upgrade, oppure il nome del servizio per gRPC. Un percorso WebSocket può terminare con ?ed=2048 per l'early data.
tls tls per usare TLS, oppure vuoto.
sni, alpn, fp Il nome del server TLS, l'elenco ALPN e l'impronta del browser.

La forma Xray è un URL, con la cifratura in encryption e le impostazioni del trasporto e di TLS come parametri di query:

vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name
Parametro Descrizione
type Il trasporto.
encryption La cifratura. Senza di essa, auto.
security tls, oppure none.
sni, alpn, fp Il nome del server TLS, l'elenco ALPN e l'impronta del browser.
host, path L'intestazione Host e il percorso, come nella forma v2rayN.
serviceName Il nome del servizio gRPC.
ed L'early data di WebSocket, in byte.

Potatso importa anche la forma di Shadowrocket, vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&….

Ogni esempio mostra il link da importare. L'UUID è b831381d-6324-4d53-ad4f-8cda48b30811.

WebSocket con TLS e early data, tramite cdn.example.com, con l'impronta Chrome:

vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=

gRPC con TLS e aes-128-gcm, nome del servizio vmess-grpc:

vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==

TCP semplice con chacha20-poly1305, nella forma Xray:

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

HTTP Upgrade con TLS, nella forma 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

In una sottoscrizione 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
Navigazione

Type to search…

↑↓ navigate↵ selectEsc close