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://, 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
| 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
| 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-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
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
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
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
| Recurso | Suportado |
|---|---|
Protocolo Trojan: 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 |
| Transportes XHTTP, mKCP e QUIC | ❌ |
| 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, sing-box ou 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://
Um link trojan:// guarda um servidor inteiro em uma linha:
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: 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
Cada exemplo mostra o link a importar. A senha é secret.
Um servidor básico:
trojan://secret@trojan.example.com:443?sni=trojan.example.com#BasicWebSocket por cdn.example.com:
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocketgRPC com o nome de serviço 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 emprestado www.example.com:
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY