Un servidor Trojan se describe con una contraseña y sus ajustes TLS, y opcionalmente un transporte que lleva la conexión, como WebSocket o gRPC. Trojan siempre funciona dentro de TLS (o REALITY), así que, para cualquiera que observe, la conexión parece una visita HTTPS normal. Potatso se conecta a un servidor cuando admite 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 trojan://.
Puedes añadir un servidor Trojan a mano, con un enlace trojan:// 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 Trojan desde una configuración de sing-box. Usa en su lugar el enlace trojan:// del servidor.
Transportes
| Transporte | type del enlace |
Admitido | Probado con |
|---|---|---|---|
| Solo TLS (sin transporte) | tcp, o ninguno |
✅ | Xray, sing-box, trojan-go |
| WebSocket | ws |
✅ Con o sin early data | Xray, sing-box, trojan-go |
| gRPC | grpc |
✅ | Xray, sing-box |
| HTTP/2 | http o h2 |
✅ | sing-box |
| HTTP Upgrade | httpupgrade |
✅ | Xray, sing-box |
| XHTTP | xhttp |
❌ | |
| mKCP, QUIC | kcp, quic |
❌ |
Todos los transportes funcionan con UDP. Potatso no importa un servidor cuyo transporte no admite.
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 | Parámetro del enlace | Admitido |
|---|---|---|---|
| Nombre del servidor (SNI) | sni |
sni, peer |
✅ Sin él, Potatso usa la dirección del servidor. |
| ALPN | alpn |
alpn |
✅ Sin él, Potatso envía h2, http/1.1, o http/1.1 para WebSocket y HTTP Upgrade, y h2 para gRPC y HTTP/2. |
| Omitir verificación del certificado | skip-cert-verify |
allowInsecure, insecure |
✅ |
| Pin del certificado (SHA-256) | fingerprint |
✅ | |
| Huella digital del navegador | client-fingerprint |
fp |
✅ chrome, firefox, safari, ios, android, edge y random. Otros nombres se conectan con una negociación predeterminada. |
| REALITY | reality-opts |
security=reality, pbk, sid |
✅ Sin transporte o con gRPC |
| Encrypted Client Hello (ECH) | ech-opts |
ech |
✅ Con la configuración ECH en el enlace o la suscripción |
| Certificado de CA personalizado | ❌ | ||
| Certificado de cliente TLS | certificate, private-key |
❌ |
Desactivar la verificación del certificado permite que cualquiera entre tú y el servidor lea tu tráfico. Si el servidor usa un certificado autofirmado, fija mejor su certificado: indica el SHA-256 de su certificado como pin del certificado.
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.
REALITY
Un servidor REALITY toma prestado el certificado TLS de otro sitio web, así que no necesita uno propio. Indica la clave pública y el ID corto del servidor tal como te los da tu proveedor, y como nombre del servidor el sitio web del que lo toma prestado. REALITY necesita una huella digital del navegador: cuando tu enlace o tus ajustes no la tienen, Potatso usa chrome.
REALITY funciona sin transporte y con gRPC. Potatso no importa un servidor REALITY que use otro transporte.
Multiplexación
Potatso puede ejecutar varias conexiones sobre una sola conexión Trojan con la multiplexación de sing-box (smux, yamux o h2mux), indicada con smux en una suscripción de Clash. El servidor debe tener activada la multiplexación. Funcionan tanto TCP como UDP.
La multiplexación propia de trojan-go (mux en un servidor trojan-go) es un protocolo distinto, y Potatso no lo admite. Un servidor trojan-go sigue aceptando las conexiones de Potatso sin ella.
UDP
Trojan transporta UDP por la misma conexión TLS que TCP. UDP está desactivado por defecto, como en Clash. Activa Retransmisión UDP en los ajustes del servidor si tu servidor retransmite UDP: Xray, sing-box y trojan-go lo hacen. Una suscripción de Clash lo activa con udp: true.
Compatibilidad de funciones
| Función | Admitida |
|---|---|
Protocolo Trojan: hash de contraseña, CONNECT |
✅ |
UDP ASSOCIATE de Trojan |
✅ |
Trojan sin TLS (security=none) |
❌ |
| Varios usuarios en un servidor | ✅ Cada uno con su propia contraseña |
| Transportes WebSocket, gRPC, HTTP/2 y HTTP Upgrade | ✅ Consulta Transportes |
| Transportes XHTTP, mKCP y QUIC | ❌ |
| REALITY | ✅ Sin transporte o con gRPC |
| ECH | ✅ |
| Multiplexación de sing-box (smux, yamux, h2mux) | ✅ |
| Multiplexación de trojan-go | ❌ |
Cifrado Shadowsocks de trojan-go (ss-opts, encryption=ss;…) |
❌ |
| ShadowTLS, Restls o JLS alrededor de Trojan | ❌ |
Enlaces trojan:// y trojan-go:// |
✅ |
Cada función admitida se prueba con al menos un servidor Trojan real: Xray, sing-box o trojan-go.
Cuando una contraseña es incorrecta, un servidor Trojan responde como un sitio web normal (su fallback). Potatso entonces no puede conectarse y no muestra un error de contraseña: comprueba primero la contraseña cuando un servidor Trojan no llegue a conectarse nunca.
Potatso no importa un servidor que use el cifrado Shadowsocks de trojan-go, ni ShadowTLS, Restls o JLS alrededor de Trojan, ya que se conectaría sin ellos y el servidor no respondería.
Algunas funciones de trojan-go son ajustes de su propio programa cliente, y Potatso hace el mismo trabajo a su manera:
- Enrutamiento: usa reglas en tu perfil.
- Servidores locales SOCKS5 y HTTP, y reenvío: Potatso captura por sí mismo el tráfico de tu dispositivo.
Enlaces trojan://
Un enlace trojan:// contiene un servidor completo en una sola línea:
trojan://password@host:port?parameters#name| Parte | Descripción |
|---|---|
password |
La contraseña, con codificación porcentual. Todo lo que hay antes de @ es la contraseña, incluido cualquier :. |
host |
Dirección del servidor. Pon una dirección IPv6 entre corchetes, como [2001:db8::1]. |
port |
Puerto del servidor. Si falta, Potatso usa 443. |
name |
Opcional. El nombre del servidor en Potatso. |
Los parámetros siguen el formato que usan Xray y v2rayN:
| Parámetro | Descripción |
|---|---|
security |
tls (el valor predeterminado) o reality. |
type |
El transporte: tcp, ws, grpc, http (HTTP/2) o httpupgrade. |
sni, peer |
El nombre de servidor TLS. |
alpn |
La lista ALPN, separada por comas y con codificación porcentual. |
fp |
La huella digital del navegador. |
allowInsecure |
1 desactiva la verificación del certificado. |
host |
El Host HTTP para WebSocket, HTTP/2 y HTTP Upgrade. |
path |
La ruta para WebSocket, HTTP/2 y HTTP Upgrade. Una ruta WebSocket como /ws?ed=2048 activa early data. |
serviceName |
El nombre del servicio gRPC. |
pbk, sid |
La clave pública y el ID corto de REALITY. |
ech |
La configuración ECH, codificada en Base64 y con codificación porcentual. |
Potatso también importa enlaces trojan-go://, con type=original (sin transporte) o type=ws. No importa uno con un parámetro encryption, que necesita el cifrado Shadowsocks de trojan-go.
Cuando Potatso comparte un servidor Trojan, ofrece un enlace trojan:// con los mismos parámetros.
Ejemplos
Cada ejemplo muestra el enlace que se importa. La contraseña es secret.
Un servidor básico:
trojan://secret@trojan.example.com:443?sni=trojan.example.com#BasicWebSocket a través de cdn.example.com:
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocketgRPC con el nombre de servicio TrojanGun:
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPCHTTP/2:
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2HTTP Upgrade:
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#UpgradeREALITY, tomando prestado www.example.com:
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY