---
title: "Trojan"
description: "Транспорты, параметры TLS, ссылки и возможности Trojan, которые поддерживает 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

Сервер Trojan описывается **паролем** и **настройками TLS**, а при необходимости еще и **транспортом**, который несет соединение, например WebSocket или gRPC. Trojan всегда работает внутри TLS (или REALITY), поэтому для стороннего наблюдателя соединение выглядит как обычное посещение сайта по HTTPS. Potatso подключается к серверу, если поддерживает его транспорт и настройки TLS. Используйте таблицы ниже, чтобы проверить настройки своего сервера, показанные провайдером или в его ссылке `trojan://`.

Сервер Trojan можно добавить вручную, с помощью [ссылки `trojan://`](#links) или импортом:

- подписки Clash или Mihomo,
- конфигурации Xray или V2Ray,
- конфигурации Surge.

Potatso пока не импортирует серверы Trojan из конфигурации sing-box. Используйте вместо этого ссылку `trojan://` сервера.

## Транспорты {#transports}

| Транспорт | `type` в ссылке | Поддержка | Проверен с |
| --- | --- | --- | --- |
| Только TLS (без транспорта) | `tcp` или отсутствует | ✅ | Xray, sing-box, trojan-go |
| WebSocket | `ws` | ✅ С ранними данными и без них | Xray, sing-box, trojan-go |
| gRPC | `grpc` | ✅ | Xray, sing-box |
| HTTP/2 | `http` или `h2` | ✅ | sing-box |
| HTTP Upgrade | `httpupgrade` | ✅ | Xray, sing-box |
| XHTTP | `xhttp` | ❌ | |
| mKCP, QUIC | `kcp`, `quic` | ❌ | |

Все транспорты работают с UDP. Potatso не импортирует сервер с неподдерживаемым транспортом.

Xray больше не предлагает HTTP/2: серверы Xray, которые его использовали, теперь используют XHTTP, а его Potatso пока не поддерживает.

## TLS {#tls}

| Настройка | Ключ Clash | Параметр ссылки | Поддержка |
| --- | --- | --- | --- |
| Имя сервера (SNI) | `sni` | `sni`, `peer` | ✅ Если не задано, Potatso использует адрес сервера. |
| ALPN | `alpn` | `alpn` | ✅ Если не задан, Potatso отправляет `h2, http/1.1`, а для WebSocket и HTTP Upgrade — `http/1.1`, для gRPC и HTTP/2 — `h2`. |
| Не проверять сертификат | `skip-cert-verify` | `allowInsecure`, `insecure` | ✅ |
| Закрепление сертификата (SHA-256) | `fingerprint` | | ✅ |
| Отпечаток браузера | `client-fingerprint` | `fp` | ✅ `chrome`, `firefox`, `safari`, `ios`, `android`, `edge` и `random`. Другие названия подключаются с рукопожатием по умолчанию. |
| [REALITY](#reality) | `reality-opts` | `security=reality`, `pbk`, `sid` | ✅ Без транспорта или с gRPC |
| Encrypted Client Hello (ECH) | `ech-opts` | `ech` | ✅ С конфигурацией ECH в ссылке или подписке |
| Свой сертификат CA | | | ❌ |
| Клиентский сертификат TLS | `certificate`, `private-key` | | ❌ |

Отключение проверки сертификата позволяет любому между вами и сервером читать ваш трафик. Если сервер использует самоподписанный сертификат, лучше закрепите его: укажите SHA-256 сертификата как закрепление сертификата.

Отпечаток браузера делает TLS-рукопожатие соединения похожим на рукопожатие этого браузера. Он не меняет того, что должен поддерживать сервер.

### REALITY {#reality}

Сервер REALITY заимствует TLS-сертификат другого сайта, поэтому собственный сертификат ему не нужен. Укажите **открытый ключ** и **short ID** сервера так, как их дает провайдер, а в качестве имени сервера — сайт, у которого сервер заимствует сертификат. REALITY требует отпечаток браузера: если в вашей ссылке или настройках его нет, Potatso использует `chrome`.

REALITY работает без транспорта и с gRPC. Potatso не импортирует сервер REALITY, использующий другой транспорт.

## Мультиплексирование {#mux}

Potatso может пропускать несколько соединений через одно соединение Trojan с помощью мультиплексирования sing-box (`smux`, `yamux` или `h2mux`), которое в подписке Clash задается параметром `smux`. На сервере должно быть включено мультиплексирование. Работают и TCP, и UDP.

Собственное мультиплексирование trojan-go (`mux` на сервере trojan-go) — это другой протокол, и Potatso его не поддерживает. Сервер trojan-go все равно принимает соединения Potatso без него.

## UDP {#udp}

Trojan передает UDP по тому же TLS-соединению, что и TCP. Как и в Clash, UDP по умолчанию выключен. Включите «Ретрансляция UDP» в настройках сервера, если ваш сервер ретранслирует UDP: Xray, sing-box и trojan-go это делают. В подписке Clash он включается параметром `udp: true`.

## Поддержка возможностей {#features}

| Возможность | Поддержка |
| --- | --- |
| [Протокол Trojan](https://trojan-gfw.github.io/trojan/protocol): хеш пароля, `CONNECT` | ✅ |
| Trojan `UDP ASSOCIATE` | ✅ |
| Trojan без TLS (`security=none`) | ❌ |
| Несколько пользователей на одном сервере | ✅ У каждого свой пароль |
| Транспорты WebSocket, gRPC, HTTP/2 и HTTP Upgrade | ✅ См. [Транспорты](#transports) |
| Транспорты XHTTP, mKCP и QUIC | ❌ |
| [REALITY](#reality) | ✅ Без транспорта или с gRPC |
| ECH | ✅ |
| Мультиплексирование sing-box (smux, yamux, h2mux) | ✅ |
| Мультиплексирование trojan-go | ❌ |
| Шифрование Shadowsocks в trojan-go (`ss-opts`, `encryption=ss;…`) | ❌ |
| ShadowTLS, Restls или JLS вокруг Trojan | ❌ |
| Ссылки `trojan://` и `trojan-go://` | ✅ |

Каждая поддерживаемая возможность проверена как минимум на одном настоящем сервере Trojan: [Xray](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) или [trojan-go](https://p4gefau1t.github.io/trojan-go/).

Если пароль неверный, сервер Trojan отвечает как обычный сайт (резервный ответ, fallback). Potatso тогда не может подключиться и не показывает ошибку пароля: если сервер Trojan никак не подключается, сначала проверьте пароль.

Potatso не импортирует сервер, который использует шифрование Shadowsocks из trojan-go, ShadowTLS, Restls или JLS вокруг Trojan, потому что он подключился бы без них, а сервер не ответил бы.

Некоторые возможности trojan-go — это настройки его собственной клиентской программы, а Potatso решает ту же задачу по-своему:

- Маршрутизация: используйте правила в своем профиле.
- Локальные серверы SOCKS5 и HTTP и перенаправление: Potatso сам перехватывает трафик вашего устройства.

## Ссылки `trojan://` {#links}

Ссылка `trojan://` содержит весь сервер в одной строке:

```text
trojan://password@host:port?parameters#name
```

| Часть | Описание |
| --- | --- |
| `password` | Пароль с процентным кодированием. Всё до `@` — это пароль, включая любые `:`. |
| `host` | Адрес сервера. Адрес IPv6 заключайте в квадратные скобки, например `[2001:db8::1]`. |
| `port` | Порт сервера. Если его нет, Potatso использует 443. |
| `name` | Необязательный. Название сервера в Potatso. |

Параметры следуют формату, который используют Xray и v2rayN:

| Параметр | Описание |
| --- | --- |
| `security` | `tls` (по умолчанию) или `reality`. |
| `type` | [Транспорт](#transports): `tcp`, `ws`, `grpc`, `http` (HTTP/2) или `httpupgrade`. |
| `sni`, `peer` | Имя сервера TLS. |
| `alpn` | Список ALPN через запятую с процентным кодированием. |
| `fp` | Отпечаток браузера. |
| `allowInsecure` | `1` отключает проверку сертификата. |
| `host` | HTTP `Host` для WebSocket, HTTP/2 и HTTP Upgrade. |
| `path` | Путь для WebSocket, HTTP/2 и HTTP Upgrade. Путь WebSocket вида `/ws?ed=2048` включает ранние данные. |
| `serviceName` | Имя сервиса gRPC. |
| `pbk`, `sid` | Открытый ключ REALITY и short ID. |
| `ech` | Конфигурация ECH в кодировке Base64 с процентным кодированием. |

Potatso также импортирует ссылки `trojan-go://` с `type=original` (без транспорта) или `type=ws`. Он не импортирует ссылку с параметром `encryption`, которая требует шифрования Shadowsocks из trojan-go.

Когда Potatso делится сервером Trojan, он предлагает ссылку `trojan://` с теми же параметрами.

### Примеры {#link-examples}

В каждом примере показана ссылка для импорта. Пароль — `secret`.

Обычный сервер:

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

WebSocket через `cdn.example.com`:

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

gRPC с именем сервиса `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 с заимствованием `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/ru/protocols/trojan/index.mdx
