Skip to content

Trojan

I trasporti, le opzioni TLS, i link e le funzioni di Trojan supportati da Potatso.

Updated Visualizza come Markdown

Un server Trojan è descritto da una password e dalle sue impostazioni TLS, e facoltativamente da un trasporto che porta la connessione, come WebSocket o gRPC. Trojan funziona sempre dentro TLS (o REALITY), quindi per chi osserva la connessione somiglia a una normale visita HTTPS. Potatso si connette a un server quando supporta il trasporto e le impostazioni TLS del server. Usa le tabelle qui sotto per controllare le impostazioni del tuo server, come le indica il tuo provider o come compaiono nel suo link trojan://.

Puoi aggiungere un server Trojan a mano, con un link trojan://, oppure importando:

  • una sottoscrizione Clash o Mihomo,
  • una configurazione Xray o V2Ray,
  • una configurazione Surge.

Potatso non importa ancora server Trojan da una configurazione sing-box. Usa invece il link trojan:// del server.

Trasporti

Trasporto type del link Supportato Testato con
Solo TLS (nessun trasporto) tcp, o nessuno ✅ Xray, sing-box, trojan-go
WebSocket ws ✅ Con o senza 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 ❌

Ogni trasporto funziona con UDP. Potatso non importa un server il cui trasporto non supporta.

Xray non offre più HTTP/2: i server Xray che lo usavano ora usano XHTTP, che Potatso non supporta ancora.

TLS

Impostazione Chiave Clash Parametro del link Supportata
Nome del server (SNI) sni sni, peer ✅ Senza di esso, Potatso usa l'indirizzo del server.
ALPN alpn alpn ✅ Senza di esso, Potatso invia h2, http/1.1, oppure http/1.1 per WebSocket e HTTP Upgrade, e h2 per gRPC e HTTP/2.
Salta verifica certificato skip-cert-verify allowInsecure, insecure ✅
Pin del certificato (SHA-256) fingerprint ✅
Impronta del browser client-fingerprint fp ✅ chrome, firefox, safari, ios, android, edge e random. Gli altri nomi si connettono con un handshake predefinito.
REALITY reality-opts security=reality, pbk, sid ✅ Senza trasporto o con gRPC
Encrypted Client Hello (ECH) ech-opts ech ✅ Con la configurazione ECH nel link o nella sottoscrizione
Certificato CA personalizzato ❌
Certificato client TLS certificate, private-key ❌

Disattivare la verifica del certificato permette a chiunque si trovi tra te e il server di leggere il tuo traffico. Se il server usa un certificato autofirmato, fissa invece il certificato: imposta lo SHA-256 del suo certificato come pin del certificato.

Un'impronta del browser fa sì che l'handshake TLS della connessione somigli a quello di quel browser. Non cambia ciò che il server deve supportare.

REALITY

Un server REALITY prende in prestito il certificato TLS di un altro sito web, quindi non ne ha bisogno di uno proprio. Imposta la chiave pubblica e lo short ID del server come te li dà il tuo provider, e il nome del server sul sito web da cui il server prende il certificato in prestito. REALITY richiede un'impronta del browser: quando il tuo link o le tue impostazioni non ne hanno una, Potatso usa chrome.

REALITY funziona senza trasporto e con gRPC. Potatso non importa un server REALITY che usa un altro trasporto.

Multiplexing

Potatso può far passare più connessioni su una sola connessione Trojan con il multiplexing di sing-box (smux, yamux o h2mux), impostato con smux in una sottoscrizione Clash. Il server deve avere il multiplexing attivo. Funzionano sia TCP sia UDP.

Il multiplexing proprio di trojan-go (mux in un server trojan-go) è un protocollo diverso, e Potatso non lo supporta. Un server trojan-go accetta comunque le connessioni di Potatso senza di esso.

UDP

Trojan trasporta UDP sulla stessa connessione TLS di TCP. UDP è disattivato per impostazione predefinita, come in Clash. Attiva Relay UDP nelle impostazioni del server se il tuo server inoltra UDP: Xray, sing-box e trojan-go lo fanno tutti. Una sottoscrizione Clash lo attiva con udp: true.

Funzioni supportate

Funzione Supportata
Protocollo Trojan: hash della password, CONNECT ✅
Trojan UDP ASSOCIATE ✅
Trojan senza TLS (security=none) ❌
Più utenti su un server ✅ Ciascuno con la propria password
Trasporti WebSocket, gRPC, HTTP/2 e HTTP Upgrade ✅ Vedi Trasporti
Trasporti XHTTP, mKCP e QUIC ❌
REALITY ✅ Senza trasporto o con gRPC
ECH ✅
Multiplexing di sing-box (smux, yamux, h2mux) ✅
Multiplexing di trojan-go ❌
Cifratura Shadowsocks di trojan-go (ss-opts, encryption=ss;…) ❌
ShadowTLS, Restls o JLS attorno a Trojan ❌
Link trojan:// e trojan-go:// ✅

Ogni funzione supportata è testata con almeno un server Trojan reale: Xray, sing-box o trojan-go.

Quando una password è sbagliata, un server Trojan risponde invece come un normale sito web (il suo fallback). Potatso allora non riesce a connettersi, e non mostra un errore di password: controlla prima la password quando un server Trojan non si connette mai.

Potatso non importa un server che usa la cifratura Shadowsocks di trojan-go, né ShadowTLS, Restls o JLS attorno a Trojan, perché si connetterebbe senza di essi e il server non risponderebbe.

Alcune funzioni di trojan-go sono impostazioni del suo programma client, e Potatso svolge lo stesso compito a modo suo:

  • Instradamento: usa le regole del tuo profilo.
  • Server SOCKS5 e HTTP locali, e inoltro: Potatso cattura da sé il traffico del tuo dispositivo.

Un link trojan:// contiene un intero server in una riga:

trojan://password@host:port?parameters#name
Parte Descrizione
password La password, con percent-encoding. Tutto ciò che precede la @ è la password, compresi eventuali :.
host Indirizzo del server. Metti un indirizzo IPv6 tra parentesi quadre, come [2001:db8::1].
port Porta del server. Se manca, Potatso usa 443.
name Facoltativo. Il nome del server in Potatso.

I parametri seguono il formato usato da Xray e v2rayN:

Parametro Descrizione
security tls (il valore predefinito) o reality.
type Il trasporto: tcp, ws, grpc, http (HTTP/2) o httpupgrade.
sni, peer Il nome del server TLS.
alpn L'elenco ALPN, separato da virgole e con percent-encoding.
fp L'impronta del browser.
allowInsecure 1 disattiva la verifica del certificato.
host L'Host HTTP per WebSocket, HTTP/2 e HTTP Upgrade.
path Il percorso per WebSocket, HTTP/2 e HTTP Upgrade. Un percorso WebSocket come /ws?ed=2048 attiva l'early data.
serviceName Il nome del servizio gRPC.
pbk, sid La chiave pubblica e lo short ID di REALITY.
ech La configurazione ECH, codificata in Base64 e con percent-encoding.

Potatso importa anche i link trojan-go://, con type=original (nessun trasporto) o type=ws. Non ne importa uno con un parametro encryption, che richiede la cifratura Shadowsocks di trojan-go.

Quando Potatso condivide un server Trojan, offre un link trojan:// con gli stessi parametri.

Ogni esempio mostra il link da importare. La password è secret.

Un server semplice:

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

WebSocket tramite cdn.example.com:

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

gRPC con il nome del servizio 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, con www.example.com preso in prestito:

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

Type to search…

↑↓ navigate↵ selectEsc close