Skip to content

Trojan

Транспорты, параметры TLS, ссылки и возможности Trojan, которые поддерживает Potatso.

Updated Открыть как Markdown

Сервер 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://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#Basic

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

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

gRPC с именем сервиса 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 с заимствованием www.example.com:

trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY
Навигация

Type to search…

↑↓ navigate↵ selectEsc close