---
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`, або `http/1.1` для WebSocket і HTTP Upgrade, та `h2` для gRPC і HTTP/2. |
| Пропустити перевірку сертифіката | `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 іншого сайту, тож власного йому не потрібно. Задайте **публічний ключ** і **короткий ID** сервера так, як їх дає ваш постачальник, а назву сервера — як сайт, у якого сервер позичає сертифікат. REALITY потребує відбитка браузера: якщо у вашому посиланні чи налаштуваннях його немає, Potatso використовує `chrome`.

REALITY працює без транспорту та з gRPC. Potatso не імпортує сервер REALITY, що використовує інший транспорт.

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

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

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

## UDP {#udp}

Trojan передає UDP через те саме з’єднання TLS, що й TCP. UDP типово вимкнено, як і в Clash. Увімкніть параметр «Ретрансляція 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 відповідає як звичайний вебсайт (своє резервне відображення). Тоді 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` | Публічний ключ і короткий ID REALITY. |
| `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/uk/protocols/trojan/index.mdx
