---
title: "Trojan"
description: "Los transportes, opciones TLS, enlaces y funciones de Trojan que admite Potatso."
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Trojan

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://`](#links) 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 {#transports}

| 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 {#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) | `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 {#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 {#mux}

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 {#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 {#features}

| Función | Admitida |
| --- | --- |
| [Protocolo Trojan](https://trojan-gfw.github.io/trojan/protocol): 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](#transports) |
| Transportes XHTTP, mKCP y QUIC | ❌ |
| [REALITY](#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](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) o [trojan-go](https://p4gefau1t.github.io/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://` {#links}

Un enlace `trojan://` contiene un servidor completo en una sola línea:

```text
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](#transports): `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 {#link-examples}

Cada ejemplo muestra el enlace que se importa. La contraseña es `secret`.

Un servidor básico:

```text
trojan://secret@trojan.example.com:443?sni=trojan.example.com#Basic
```

WebSocket a través de `cdn.example.com`:

```text
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocket
```

gRPC con el nombre de servicio `TrojanGun`:

```text
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPC
```

HTTP/2:

```text
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2
```

HTTP Upgrade:

```text
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#Upgrade
```

REALITY, tomando prestado `www.example.com`:

```text
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY
```

Source: https://potatso.com/docs/es/protocols/trojan/index.mdx
