Skip to content

Trojan

Os transportes, opções de TLS, links e recursos do Trojan que o Potatso suporta.

Updated Ver como Markdown

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.

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.

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

Um servidor básico:

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

WebSocket por cdn.example.com:

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:

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

HTTP/2:

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

HTTP Upgrade:

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

REALITY, tomando emprestado www.example.com:

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

Type to search…

↑↓ navigate↵ selectEsc close