---
title: "Trojan"
description: "Os transportes, opções de TLS, links e recursos do Trojan que o Potatso suporta."
---

> 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

Um servidor Trojan é descrito por uma **senha** e pelos seus **ajustes de TLS** e, opcionalmente, por um **transporte** que carrega a conexão, como WebSocket ou gRPC. O Trojan sempre roda dentro do TLS (ou do REALITY), então, para quem observa, a conexão parece uma visita HTTPS comum. O Potatso conecta a um servidor quando suporta o transporte e os ajustes de TLS dele. Use as tabelas abaixo para conferir os ajustes do seu servidor, como mostrados pelo seu provedor ou no link `trojan://` dele.

Você pode adicionar um servidor Trojan à mão, com um [link `trojan://`](#links), ou importando:

- uma assinatura Clash ou Mihomo,
- uma configuração do Xray ou do V2Ray,
- uma configuração do Surge.

O Potatso ainda não importa servidores Trojan de uma configuração do sing-box. Use o link `trojan://` do servidor.

## Transportes {#transports}

| Transporte | `type` do link | Suportado | Testado com |
| --- | --- | --- | --- |
| Somente TLS (sem transporte) | `tcp`, ou nenhum | ✅ | Xray, sing-box, trojan-go |
| WebSocket | `ws` | ✅ Com ou sem early data | Xray, sing-box, trojan-go |
| gRPC | `grpc` | ✅ | Xray, sing-box |
| HTTP/2 | `http` ou `h2` | ✅ | sing-box |
| HTTP Upgrade | `httpupgrade` | ✅ | Xray, sing-box |
| XHTTP | `xhttp` | ❌ | |
| mKCP, QUIC | `kcp`, `quic` | ❌ | |

Todos os transportes funcionam com UDP. O Potatso não importa um servidor cujo transporte ele não suporta.

O Xray não oferece mais HTTP/2: os servidores Xray que o usavam agora usam XHTTP, que o Potatso ainda não suporta.

## TLS {#tls}

| Ajuste | Chave do Clash | Parâmetro do link | Suportado |
| --- | --- | --- | --- |
| Nome do servidor (SNI) | `sni` | `sni`, `peer` | ✅ Sem um, o Potatso usa o endereço do servidor. |
| ALPN | `alpn` | `alpn` | ✅ Sem um, o Potatso envia `h2, http/1.1`, ou `http/1.1` para WebSocket e HTTP Upgrade, e `h2` para gRPC e HTTP/2. |
| Ignorar a verificação de certificado | `skip-cert-verify` | `allowInsecure`, `insecure` | ✅ |
| Fixação de certificado (SHA-256) | `fingerprint` | | ✅ |
| Impressão digital do navegador | `client-fingerprint` | `fp` | ✅ `chrome`, `firefox`, `safari`, `ios`, `android`, `edge` e `random`. Outros nomes conectam com um handshake padrão. |
| [REALITY](#reality) | `reality-opts` | `security=reality`, `pbk`, `sid` | ✅ Sem transporte ou com gRPC |
| Encrypted Client Hello (ECH) | `ech-opts` | `ech` | ✅ Com a configuração ECH no link ou na assinatura |
| Certificado CA personalizado | | | ❌ |
| Certificado de cliente TLS | `certificate`, `private-key` | | ❌ |

Desativar a verificação de certificado permite que qualquer pessoa entre você e o servidor leia o seu tráfego. Fixe o certificado do servidor em vez disso, se ele usa um autoassinado: defina o SHA-256 do certificado como a fixação de certificado.

Uma impressão digital de navegador faz o handshake TLS da conexão parecer o daquele navegador. Ela não muda o que o servidor precisa suportar.

### REALITY {#reality}

Um servidor REALITY toma emprestado o certificado TLS de outro site, então não precisa de um próprio. Defina a **chave pública** e o **short ID** do servidor como o seu provedor os fornece, e o nome do servidor como o site do qual o servidor toma emprestado. O REALITY precisa de uma impressão digital de navegador: quando o seu link ou os ajustes não têm uma, o Potatso usa `chrome`.

O REALITY funciona sem transporte e com gRPC. O Potatso não importa um servidor REALITY que use outro transporte.

## Multiplexação {#mux}

O Potatso pode executar várias conexões sobre uma única conexão Trojan com a multiplexação do sing-box (`smux`, `yamux` ou `h2mux`), definida com `smux` em uma assinatura Clash. O servidor precisa ter a multiplexação ativada. TCP e UDP funcionam.

A multiplexação própria do trojan-go (`mux` em um servidor trojan-go) é um protocolo diferente, e o Potatso não a suporta. Um servidor trojan-go ainda aceita as conexões do Potatso sem ela.

## UDP {#udp}

O Trojan transporta UDP pela mesma conexão TLS do TCP. O UDP vem desativado por padrão, como no Clash. Ative o Relay UDP nos ajustes do servidor se o seu servidor repassa UDP: Xray, sing-box e trojan-go repassam. Uma assinatura Clash o ativa com `udp: true`.

## Suporte a recursos {#features}

| Recurso | Suportado |
| --- | --- |
| [Protocolo Trojan](https://trojan-gfw.github.io/trojan/protocol): hash da senha, `CONNECT` | ✅ |
| `UDP ASSOCIATE` do Trojan | ✅ |
| Trojan sem TLS (`security=none`) | ❌ |
| Vários usuários em um servidor | ✅ Cada um com a própria senha |
| Transportes WebSocket, gRPC, HTTP/2 e HTTP Upgrade | ✅ Veja [Transportes](#transports) |
| Transportes XHTTP, mKCP e QUIC | ❌ |
| [REALITY](#reality) | ✅ Sem transporte ou com gRPC |
| ECH | ✅ |
| Multiplexação do sing-box (smux, yamux, h2mux) | ✅ |
| Multiplexação do trojan-go | ❌ |
| Criptografia Shadowsocks do trojan-go (`ss-opts`, `encryption=ss;…`) | ❌ |
| ShadowTLS, Restls ou JLS em volta do Trojan | ❌ |
| Links `trojan://` e `trojan-go://` | ✅ |

Todo recurso suportado é testado com pelo menos um servidor Trojan real: [Xray](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) ou [trojan-go](https://p4gefau1t.github.io/trojan-go/).

Quando a senha está errada, um servidor Trojan responde como um site comum (o fallback dele). O Potatso então não consegue conectar e não mostra um erro de senha: verifique primeiro a senha quando um servidor Trojan nunca conecta.

O Potatso não importa um servidor que use a criptografia Shadowsocks do trojan-go, ou ShadowTLS, Restls ou JLS em volta do Trojan, pois conectaria sem eles e o servidor não responderia.

Alguns recursos do trojan-go são ajustes do próprio programa cliente dele, e o Potatso faz o mesmo trabalho à sua maneira:

- Roteamento: use as regras do seu perfil.
- Servidores locais SOCKS5 e HTTP, e encaminhamento: o Potatso captura o tráfego do seu dispositivo por conta própria.

## Links `trojan://` {#links}

Um link `trojan://` guarda um servidor inteiro em uma linha:

```text
trojan://password@host:port?parameters#name
```

| Parte | Descrição |
| --- | --- |
| `password` | A senha, com percent-encoding. Tudo antes do `@` é a senha, incluindo qualquer `:`. |
| `host` | Endereço do servidor. Coloque um endereço IPv6 entre colchetes, como `[2001:db8::1]`. |
| `port` | Porta do servidor. Quando falta, o Potatso usa 443. |
| `name` | Opcional. O nome do servidor no Potatso. |

Os parâmetros seguem o formato que o Xray e o v2rayN usam:

| Parâmetro | Descrição |
| --- | --- |
| `security` | `tls` (o padrão) ou `reality`. |
| `type` | O [transporte](#transports): `tcp`, `ws`, `grpc`, `http` (HTTP/2) ou `httpupgrade`. |
| `sni`, `peer` | O nome do servidor TLS. |
| `alpn` | A lista de ALPN, separada por vírgulas e com percent-encoding. |
| `fp` | A impressão digital do navegador. |
| `allowInsecure` | `1` desativa a verificação de certificado. |
| `host` | O `Host` HTTP para WebSocket, HTTP/2 e HTTP Upgrade. |
| `path` | O caminho para WebSocket, HTTP/2 e HTTP Upgrade. Um caminho WebSocket como `/ws?ed=2048` ativa o early data. |
| `serviceName` | O nome do serviço gRPC. |
| `pbk`, `sid` | A chave pública e o short ID do REALITY. |
| `ech` | A configuração ECH, codificada em Base64 e com percent-encoding. |

O Potatso também importa links `trojan-go://`, com `type=original` (sem transporte) ou `type=ws`. Ele não importa um com o parâmetro `encryption`, que exige a criptografia Shadowsocks do trojan-go.

Ao compartilhar um servidor Trojan, o Potatso oferece um link `trojan://` com os mesmos parâmetros.

### Exemplos {#link-examples}

Cada exemplo mostra o link a importar. A senha é `secret`.

Um servidor básico:

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

WebSocket por `cdn.example.com`:

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

gRPC com o nome de serviço `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 emprestado `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/pt-br/protocols/trojan/index.mdx
