Un servidor VMess se describe con un UUID, un cifrado que protege el tráfico y un transporte que lleva la conexión, como WebSocket o gRPC, con o sin TLS. Potatso se conecta a un servidor cuando admite el cifrado, el transporte y los ajustes TLS de este. Usa las tablas siguientes para comprobar los ajustes de tu servidor, tal como los muestra tu proveedor o su enlace vmess://.
Puedes añadir un servidor VMess a mano, con un enlace vmess:// o importándolo desde:
- una suscripción de Clash o Mihomo,
- una configuración de Xray o V2Ray,
- una configuración de Surge.
Potatso todavía no importa servidores VMess desde una configuración de sing-box. Usa en su lugar el enlace vmess:// del servidor.
Cifrados
| Cifrado | Admitido |
|---|---|
auto |
✅ Potatso elige aes-128-gcm, que todos los dispositivos Apple ejecutan por hardware. |
aes-128-gcm |
✅ |
chacha20-poly1305 |
✅ |
none |
✅ |
zero |
❌ |
aes-128-cfb (heredado) |
❌ |
none y zero envían tu tráfico sin cifrar. Usa none solo con TLS, que entonces cifra la conexión. Potatso no se conecta con zero, que además elimina la protección contra manipulaciones: elige otro cifrado en tu servidor.
alterId
Potatso siempre usa la autenticación VMess actual, que equivale a alterId 0. Los servidores cuyo usuario todavía tiene un alterId superior a 0 también la aceptan, así que puedes dejar el servidor como está. Potatso no admite la autenticación antigua que solo usaba un alterId superior a 0, que los servidores han dejado de recomendar desde 2022.
Transportes
| Transporte | net / type del enlace |
Admitido | Probado con |
|---|---|---|---|
| Ninguno (TCP simple) | tcp, o ninguno |
✅ Con o sin TLS | Xray, sing-box, V2Ray |
| WebSocket | ws |
✅ Con o sin TLS y early data | Xray, sing-box, V2Ray |
| gRPC | grpc |
✅ Con o sin TLS | Xray, sing-box, V2Ray |
| HTTP/2 | h2 o http |
✅ Con TLS | sing-box, V2Ray |
| HTTP Upgrade | httpupgrade |
✅ Con o sin TLS | Xray, sing-box |
| TCP con una cabecera HTTP | tcp con type=http |
❌ | |
| XHTTP | xhttp |
❌ | |
| mKCP, QUIC | kcp, quic |
❌ |
Todos los transportes admitidos funcionan con UDP. Potatso no importa un servidor cuyo transporte no admite.
El early data de WebSocket envía los primeros bytes de una conexión junto con la negociación WebSocket, ahorrando un viaje de ida y vuelta. Se indica con ?ed=2048 al final de la ruta del enlace, o con max-early-data en una suscripción de Clash.
Xray ya no ofrece HTTP/2: los servidores Xray que lo usaban ahora usan XHTTP, que Potatso todavía no admite.
TLS
| Ajuste | Clave de Clash | Campo del enlace | Admitido |
|---|---|---|---|
| Nombre del servidor (SNI) | servername |
sni |
✅ Sin él, Potatso usa la dirección del servidor. |
| ALPN | alpn |
alpn |
✅ Sin él, Potatso envía http/1.1 para WebSocket y h2 para gRPC y HTTP/2. |
| Omitir verificación del certificado | skip-cert-verify |
allowInsecure |
✅ |
| Huella digital del navegador | client-fingerprint |
fp |
✅ chrome, firefox, safari, ios, android, edge y random. Otros nombres se conectan con una negociación predeterminada. |
| Pin de certificado | fingerprint |
pcs |
❌ |
| REALITY | reality-opts |
security=reality |
❌ |
| Encrypted Client Hello (ECH) | ech-opts |
ech |
❌ |
| Certificado de CA personalizado | ❌ |
Desactivar la verificación del certificado permite que cualquiera entre tú y el servidor lea tu tráfico. Potatso no se conecta a un servidor VMess que necesite REALITY, ECH o un pin de certificado, porque conectarse sin ellos no daría la protección que pide el servidor. Usa VLESS o Trojan para REALITY.
Una huella digital del navegador hace que la negociación TLS de la conexión parezca la de ese navegador. No cambia lo que debe admitir el servidor.
UDP
UDP está desactivado por defecto en los servidores VMess. Activa Retransmisión UDP en los ajustes del servidor, o indica udp: true en una suscripción de Clash.
Potatso envía cada flujo UDP por su propia conexión VMess, algo que aceptan todos los servidores VMess. No admite las codificaciones XUDP y PacketAddr (packetEncoding en un enlace, packet-encoding o xudp en una suscripción de Clash), que transportan muchos flujos UDP por una sola conexión: un servidor configurado con ellas sigue funcionando, y Potatso te avisa al importar de que usa en su lugar su propio UDP. Es posible que las apps que necesitan NAT full-cone, como algunos juegos, no funcionen con él.
Con la multiplexación activada, UDP viaja en cambio por la conexión compartida.
Multiplexación
Potatso puede ejecutar varias conexiones sobre una sola conexión VMess, indicada con smux en una suscripción de Clash:
| Protocolo | protocol de smux |
Servidores |
|---|---|---|
| Mux.Cool | muxcool |
Xray, V2Ray y sing-box, sin ajuste en el servidor |
| sing-mux | h2mux, smux, yamux |
sing-box con la multiplexación activada |
Funcionan tanto TCP como UDP. Mux.Cool cierra a la vez ambas direcciones de una conexión, así que una app que deja de enviar y luego espera la respuesta debería usar un servidor sin multiplexación.
Opciones de petición
Un cliente VMess elige algunas opciones en cada conexión, y todos los servidores aceptan cualquiera de ellas. Potatso siempre envía su tráfico en fragmentos cifrados y marca el final de cada subida, y no activa las demás:
| Opción | Clave de Clash | Potatso |
|---|---|---|
| Flujo de fragmentos | Siempre activada | |
| Enmascaramiento de fragmentos | Desactivada | |
| Padding global | global-padding |
Desactivada. Potatso te avisa cuando importas un servidor que la activa. |
| Longitud autenticada | authenticated-length |
Desactivada. Potatso te avisa cuando importas un servidor que la activa. |
El enmascaramiento de fragmentos y el padding global ocultan el tamaño de cada fragmento a quien observe. Sin ellos, tu tráfico sigue sin poder leerse, pero su patrón es más fácil de reconocer.
Subidas grandes
Una sola conexión VMess puede subir unos 1 GiB. VMess numera sus fragmentos cifrados con un contador que se agota pasado ese límite, y seguir debilitaría el cifrado, así que Potatso cierra la conexión. Las descargas no tienen límite. Para subidas de más de 1 GiB en una sola conexión, usa un servidor VLESS o Trojan.
Compatibilidad de funciones
| Función | Admitida |
|---|---|
Autenticación AEAD (alterId 0) |
✅ |
Autenticación MD5 heredada (alterId superior a 0) |
❌ Los servidores con alterId superior a 0 aceptan la autenticación AEAD. |
Cifrados aes-128-gcm, chacha20-poly1305, none, auto |
✅ |
Cifrados zero y el heredado aes-128-cfb |
❌ |
| Flujo de fragmentos, marcador de fin de subida | ✅ |
| Enmascaramiento de fragmentos, padding global, longitud autenticada | ❌ Los servidores aceptan conexiones sin ellos |
| UDP | ✅ Una conexión por flujo |
| Subidas de más de 1 GiB en una conexión | ❌ Consulta Subidas grandes |
| XUDP, PacketAddr | ❌ |
| Mux.Cool | ✅ TCP y UDP |
| sing-mux (h2mux, smux, yamux) | ✅ TCP y UDP |
| Transportes | Consulta Transportes |
| TLS | Consulta TLS |
| Enlaces para compartir de v2rayN (versión 2) | ✅ |
| Enlaces para compartir de Xray | ✅ |
| Enlaces para compartir de Shadowrocket | Solo importación |
Enlaces vmess://
Un enlace vmess:// contiene un servidor completo en una sola línea. Potatso importa tres formas y comparte las dos primeras.
La forma de v2rayN, la más habitual, es un objeto JSON codificado en Base64:
vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})| Campo | Descripción |
|---|---|
v |
Versión del formato, 2. |
ps |
Opcional. El nombre del servidor en Potatso. |
add |
Dirección del servidor. |
port |
Puerto del servidor. |
id |
El UUID. |
aid |
alterId. Consulta alterId. |
scy |
El cifrado. Sin él, auto. |
net |
El transporte: tcp, ws, grpc, h2 o httpupgrade. |
type |
none, o http para una cabecera HTTP de TCP, que Potatso no admite. |
host |
La cabecera Host para WebSocket, HTTP/2 y HTTP Upgrade. |
path |
La ruta para WebSocket, HTTP/2 y HTTP Upgrade, o el nombre del servicio para gRPC. Una ruta WebSocket puede terminar en ?ed=2048 para early data. |
tls |
tls para usar TLS, o vacío. |
sni, alpn, fp |
El nombre de servidor TLS, la lista ALPN y la huella digital del navegador. |
La forma de Xray es una URL, con el cifrado en encryption y el transporte y los ajustes TLS como parámetros de consulta:
vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name| Parámetro | Descripción |
|---|---|
type |
El transporte. |
encryption |
El cifrado. Sin él, auto. |
security |
tls, o none. |
sni, alpn, fp |
El nombre de servidor TLS, la lista ALPN y la huella digital del navegador. |
host, path |
La cabecera Host y la ruta, como en la forma de v2rayN. |
serviceName |
El nombre del servicio gRPC. |
ed |
Early data de WebSocket, en bytes. |
Potatso también importa la forma de Shadowrocket, vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&….
Ejemplos
Cada ejemplo muestra el enlace que se importa. El UUID es b831381d-6324-4d53-ad4f-8cda48b30811.
WebSocket con TLS y early data, a través de cdn.example.com, con la huella digital de Chrome:
vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=gRPC con TLS y aes-128-gcm, nombre de servicio vmess-grpc:
vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==TCP simple con chacha20-poly1305, en la forma de Xray:
vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:8080?type=tcp&encryption=chacha20-poly1305#Plain%20TCPHTTP Upgrade con TLS, en la forma de 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%20UpgradeEn una suscripción de 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