Skip to content

Trojan

Les transports, options TLS, liens et fonctionnalités Trojan pris en charge par Potatso.

Updated Voir en Markdown

Un serveur Trojan se décrit par un mot de passe et ses réglages TLS, et éventuellement un transport qui porte la connexion, comme WebSocket ou gRPC. Trojan fonctionne toujours dans TLS (ou REALITY) : pour quiconque observe, la connexion ressemble à une visite HTTPS ordinaire. Potatso se connecte à un serveur lorsqu’il prend en charge son transport et ses réglages TLS. Utilisez les tableaux ci-dessous pour vérifier les réglages de votre serveur, tels que votre fournisseur les indique ou tels qu’ils figurent dans son lien trojan://.

Vous pouvez ajouter un serveur Trojan à la main, avec un lien trojan://, ou en important :

  • un abonnement Clash ou Mihomo,
  • une configuration Xray ou V2Ray,
  • une configuration Surge.

Potatso n’importe pas encore les serveurs Trojan d’une configuration sing-box. Utilisez plutôt le lien trojan:// du serveur.

Transports

Transport type du lien Pris en charge Testé avec
TLS seul (sans transport) tcp, ou aucun ✅ Xray, sing-box, trojan-go
WebSocket ws ✅ Avec ou sans 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 ❌

Chaque transport fonctionne avec l’UDP. Potatso n’importe pas un serveur dont il ne prend pas en charge le transport.

Xray ne propose plus HTTP/2 : les serveurs Xray qui l’utilisaient utilisent désormais XHTTP, que Potatso ne prend pas encore en charge.

TLS

Réglage Clé Clash Paramètre de lien Pris en charge
Nom du serveur (SNI) sni sni, peer ✅ Sans nom, Potatso utilise l’adresse du serveur.
ALPN alpn alpn ✅ Sans ALPN, Potatso envoie h2, http/1.1, ou http/1.1 pour WebSocket et HTTP Upgrade, et h2 pour gRPC et HTTP/2.
Ignorer la vérification du certificat skip-cert-verify allowInsecure, insecure ✅
Épinglage de certificat (SHA-256) fingerprint ✅
Empreinte de navigateur client-fingerprint fp ✅ chrome, firefox, safari, ios, android, edge et random. Les autres noms se connectent avec une négociation par défaut.
REALITY reality-opts security=reality, pbk, sid ✅ Sans transport ou avec gRPC
Encrypted Client Hello (ECH) ech-opts ech ✅ Avec la configuration ECH du lien ou de l’abonnement
Certificat CA personnalisé ❌
Certificat client TLS certificate, private-key ❌

Désactiver la vérification du certificat permet à n’importe qui entre vous et le serveur de lire votre trafic. Épinglez plutôt le certificat du serveur s’il est autosigné : saisissez le SHA-256 de son certificat comme épinglage de certificat.

Une empreinte de navigateur fait ressembler la négociation TLS de la connexion à celle de ce navigateur. Elle ne change pas ce que le serveur doit prendre en charge.

REALITY

Un serveur REALITY emprunte le certificat TLS d’un autre site web, il n’a donc pas besoin du sien. Saisissez la clé publique et l'ID court du serveur tels que votre fournisseur les indique, et le nom du serveur du site web auquel le serveur emprunte. REALITY exige une empreinte de navigateur : quand votre lien ou vos réglages n’en ont pas, Potatso utilise chrome.

REALITY fonctionne sans transport et avec gRPC. Potatso n’importe pas un serveur REALITY qui utilise un autre transport.

Multiplexage

Potatso peut faire passer plusieurs connexions par une seule connexion Trojan grâce au multiplexage de sing-box (smux, yamux ou h2mux), défini avec smux dans un abonnement Clash. Le multiplexage doit être activé sur le serveur. Le TCP et l’UDP fonctionnent tous deux.

Le multiplexage propre à trojan-go (mux dans un serveur trojan-go) est un protocole différent, que Potatso ne prend pas en charge. Un serveur trojan-go accepte quand même les connexions de Potatso sans lui.

UDP

Trojan transporte l’UDP sur la même connexion TLS que le TCP. L’UDP est désactivé par défaut, comme dans Clash. Activez Relais UDP dans les réglages du serveur si votre serveur relaie l’UDP : Xray, sing-box et trojan-go le font tous. Un abonnement Clash l’active avec udp: true.

Fonctionnalités prises en charge

Fonctionnalité Pris en charge
Protocole Trojan : hachage du mot de passe, CONNECT ✅
UDP ASSOCIATE de Trojan ✅
Trojan sans TLS (security=none) ❌
Plusieurs utilisateurs sur un serveur ✅ Chacun avec son propre mot de passe
Transports WebSocket, gRPC, HTTP/2 et HTTP Upgrade ✅ Voir Transports
Transports XHTTP, mKCP et QUIC ❌
REALITY ✅ Sans transport ou avec gRPC
ECH ✅
Multiplexage sing-box (smux, yamux, h2mux) ✅
Multiplexage trojan-go ❌
Chiffrement Shadowsocks de trojan-go (ss-opts, encryption=ss;…) ❌
ShadowTLS, Restls ou JLS autour de Trojan ❌
Liens trojan:// et trojan-go:// ✅

Chaque fonctionnalité prise en charge est testée avec au moins un vrai serveur Trojan : Xray, sing-box ou trojan-go.

Quand un mot de passe est incorrect, un serveur Trojan répond comme un site web ordinaire (son repli). Potatso ne peut alors pas se connecter, et n’affiche pas d’erreur de mot de passe : vérifiez d’abord le mot de passe quand un serveur Trojan ne se connecte jamais.

Potatso n’importe pas un serveur qui utilise le chiffrement Shadowsocks de trojan-go, ou ShadowTLS, Restls ou JLS autour de Trojan, car il se connecterait sans eux et le serveur ne répondrait pas.

Certaines fonctionnalités de trojan-go sont des réglages de son propre programme client, et Potatso fait le même travail à sa façon :

  • Routage : utilisez les règles de votre profil.
  • Serveurs SOCKS5 et HTTP locaux, et redirection : Potatso capture lui-même le trafic de votre appareil.

Un lien trojan:// contient un serveur entier sur une ligne :

trojan://password@host:port?parameters#name
Partie Description
password Le mot de passe, encodé en pourcentage. Tout ce qui précède le @ est le mot de passe, y compris tout :.
host Adresse du serveur. Placez une adresse IPv6 entre crochets, comme [2001:db8::1].
port Port du serveur. S’il manque, Potatso utilise 443.
name Facultatif. Le nom du serveur dans Potatso.

Les paramètres suivent le format qu’utilisent Xray et v2rayN :

Paramètre Description
security tls (par défaut) ou reality.
type Le transport : tcp, ws, grpc, http (HTTP/2) ou httpupgrade.
sni, peer Le nom du serveur TLS.
alpn La liste ALPN, séparée par des virgules et encodée en pourcentage.
fp L’empreinte de navigateur.
allowInsecure 1 désactive la vérification du certificat.
host Le Host HTTP pour WebSocket, HTTP/2 et HTTP Upgrade.
path Le chemin pour WebSocket, HTTP/2 et HTTP Upgrade. Un chemin WebSocket comme /ws?ed=2048 active l’early data.
serviceName Le nom du service gRPC.
pbk, sid La clé publique et l’ID court REALITY.
ech La configuration ECH, encodée en Base64 puis en pourcentage.

Potatso importe aussi les liens trojan-go://, avec type=original (sans transport) ou type=ws. Il n’en importe pas un qui a un paramètre encryption, lequel exige le chiffrement Shadowsocks de trojan-go.

Quand Potatso partage un serveur Trojan, il propose un lien trojan:// avec les mêmes paramètres.

Chaque exemple montre le lien à importer. Le mot de passe est secret.

Un serveur de base :

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

WebSocket via cdn.example.com :

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

gRPC avec le nom de service 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, en empruntant www.example.com :

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

Type to search…

↑↓ navigate↵ selectEsc close