Сервер Trojan описывается паролем и настройками TLS, а при необходимости еще и транспортом, который несет соединение, например WebSocket или gRPC. Trojan всегда работает внутри TLS (или REALITY), поэтому для стороннего наблюдателя соединение выглядит как обычное посещение сайта по HTTPS. Potatso подключается к серверу, если поддерживает его транспорт и настройки TLS. Используйте таблицы ниже, чтобы проверить настройки своего сервера, показанные провайдером или в его ссылке trojan://.
Сервер Trojan можно добавить вручную, с помощью ссылки trojan:// или импортом:
- подписки Clash или Mihomo,
- конфигурации Xray или V2Ray,
- конфигурации Surge.
Potatso пока не импортирует серверы Trojan из конфигурации sing-box. Используйте вместо этого ссылку trojan:// сервера.
Транспорты
| Транспорт | 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
| Настройка | Ключ 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-opts |
security=reality, pbk, sid |
✅ Без транспорта или с gRPC |
| Encrypted Client Hello (ECH) | ech-opts |
ech |
✅ С конфигурацией ECH в ссылке или подписке |
| Свой сертификат CA | ❌ | ||
| Клиентский сертификат TLS | certificate, private-key |
❌ |
Отключение проверки сертификата позволяет любому между вами и сервером читать ваш трафик. Если сервер использует самоподписанный сертификат, лучше закрепите его: укажите SHA-256 сертификата как закрепление сертификата.
Отпечаток браузера делает TLS-рукопожатие соединения похожим на рукопожатие этого браузера. Он не меняет того, что должен поддерживать сервер.
REALITY
Сервер REALITY заимствует TLS-сертификат другого сайта, поэтому собственный сертификат ему не нужен. Укажите открытый ключ и short ID сервера так, как их дает провайдер, а в качестве имени сервера — сайт, у которого сервер заимствует сертификат. REALITY требует отпечаток браузера: если в вашей ссылке или настройках его нет, Potatso использует chrome.
REALITY работает без транспорта и с gRPC. Potatso не импортирует сервер REALITY, использующий другой транспорт.
Мультиплексирование
Potatso может пропускать несколько соединений через одно соединение Trojan с помощью мультиплексирования sing-box (smux, yamux или h2mux), которое в подписке Clash задается параметром smux. На сервере должно быть включено мультиплексирование. Работают и TCP, и UDP.
Собственное мультиплексирование trojan-go (mux на сервере trojan-go) — это другой протокол, и Potatso его не поддерживает. Сервер trojan-go все равно принимает соединения Potatso без него.
UDP
Trojan передает UDP по тому же TLS-соединению, что и TCP. Как и в Clash, UDP по умолчанию выключен. Включите «Ретрансляция UDP» в настройках сервера, если ваш сервер ретранслирует UDP: Xray, sing-box и trojan-go это делают. В подписке Clash он включается параметром udp: true.
Поддержка возможностей
| Возможность | Поддержка |
|---|---|
Протокол Trojan: хеш пароля, CONNECT |
✅ |
Trojan UDP ASSOCIATE |
✅ |
Trojan без TLS (security=none) |
❌ |
| Несколько пользователей на одном сервере | ✅ У каждого свой пароль |
| Транспорты WebSocket, gRPC, HTTP/2 и HTTP Upgrade | ✅ См. Транспорты |
| Транспорты XHTTP, mKCP и QUIC | ❌ |
| 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, sing-box или trojan-go.
Если пароль неверный, сервер Trojan отвечает как обычный сайт (резервный ответ, fallback). Potatso тогда не может подключиться и не показывает ошибку пароля: если сервер Trojan никак не подключается, сначала проверьте пароль.
Potatso не импортирует сервер, который использует шифрование Shadowsocks из trojan-go, ShadowTLS, Restls или JLS вокруг Trojan, потому что он подключился бы без них, а сервер не ответил бы.
Некоторые возможности trojan-go — это настройки его собственной клиентской программы, а Potatso решает ту же задачу по-своему:
- Маршрутизация: используйте правила в своем профиле.
- Локальные серверы SOCKS5 и HTTP и перенаправление: Potatso сам перехватывает трафик вашего устройства.
Ссылки trojan://
Ссылка trojan:// содержит весь сервер в одной строке:
trojan://password@host:port?parameters#name| Часть | Описание |
|---|---|
password |
Пароль с процентным кодированием. Всё до @ — это пароль, включая любые :. |
host |
Адрес сервера. Адрес IPv6 заключайте в квадратные скобки, например [2001:db8::1]. |
port |
Порт сервера. Если его нет, Potatso использует 443. |
name |
Необязательный. Название сервера в Potatso. |
Параметры следуют формату, который используют Xray и v2rayN:
| Параметр | Описание |
|---|---|
security |
tls (по умолчанию) или reality. |
type |
Транспорт: 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:// с теми же параметрами.
Примеры
В каждом примере показана ссылка для импорта. Пароль — secret.
Обычный сервер:
trojan://secret@trojan.example.com:443?sni=trojan.example.com#BasicWebSocket через cdn.example.com:
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocketgRPC с именем сервиса TrojanGun:
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPCHTTP/2:
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2HTTP Upgrade:
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#UpgradeREALITY с заимствованием www.example.com:
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY