---
title: "Trojan"
description: "Les transports, options TLS, liens et fonctionnalités Trojan pris en charge par Potatso."
---

> 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

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://`](#links), 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 {#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 {#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) | `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 {#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 {#mux}

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 {#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 {#features}

| Fonctionnalité | Pris en charge |
| --- | --- |
| [Protocole Trojan](https://trojan-gfw.github.io/trojan/protocol) : 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) |
| Transports XHTTP, mKCP et QUIC | ❌ |
| [REALITY](#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](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) ou [trojan-go](https://p4gefau1t.github.io/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.

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

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

```text
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](#transports) : `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.

### Exemples {#link-examples}

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

Un serveur de base :

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

WebSocket via `cdn.example.com` :

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

gRPC avec le nom de service `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, en empruntant `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/fr/protocols/trojan/index.mdx
