---
title: "Trojan"
description: "Potatso 支援的 Trojan 傳輸、TLS 選項、連結與功能。"
---

> 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 目前還無法從 sing-box 設定匯入 Trojan 伺服器。請改用該伺服器的 `trojan://` 連結。

## 傳輸 {#transports}

| 傳輸 | 連結 `type` | 支援 | 測試對象 |
| --- | --- | --- | --- |
| 僅 TLS（無傳輸） | `tcp`，或不指定 | ✅ | Xray、sing-box、trojan-go |
| WebSocket | `ws` | ✅ 可搭配或不搭配 early data | 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 尚未支援 XHTTP。

## 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 可以用 sing-box 的多工（`smux`、`yamux` 或 `h2mux`），讓多個連線共用同一條 Trojan 連線，在 Clash 訂閱中以 `smux` 設定。伺服器必須開啟多工。TCP 與 UDP 都適用。

trojan-go 自己的多工（trojan-go 伺服器中的 `mux`）是另一種協定，Potatso 不支援。trojan-go 伺服器仍會接受未使用該多工的 Potatso 連線。

## UDP {#udp}

Trojan 在與 TCP 相同的 TLS 連線上承載 UDP。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` | ✅ |
| 不使用 TLS 的 Trojan（`security=none`） | ❌ |
| 同一台伺服器有多位使用者 | ✅ 各自使用自己的密碼 |
| WebSocket、gRPC、HTTP/2 與 HTTP Upgrade 傳輸 | ✅ 請見[傳輸](#transports) |
| XHTTP、mKCP 與 QUIC 傳輸 | ❌ |
| [REALITY](#reality) | ✅ 搭配無傳輸或 gRPC |
| ECH | ✅ |
| sing-box 多工（smux、yamux、h2mux） | ✅ |
| trojan-go 多工 | ❌ |
| trojan-go 的 Shadowsocks 加密（`ss-opts`、`encryption=ss;…`） | ❌ |
| 在 Trojan 外包覆 ShadowTLS、Restls 或 JLS | ❌ |
| `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 不會匯入使用 trojan-go 的 Shadowsocks 加密，或在 Trojan 外包覆 ShadowTLS、Restls 或 JLS 的伺服器，因為沒有這些設定它也會連線，但伺服器不會回應。

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` | WebSocket、HTTP/2 與 HTTP Upgrade 的 HTTP `Host`。 |
| `path` | WebSocket、HTTP/2 與 HTTP Upgrade 的路徑。像 `/ws?ed=2048` 這樣的 WebSocket 路徑會開啟 early data。 |
| `serviceName` | gRPC 服務名稱。 |
| `pbk`、`sid` | REALITY 公鑰與 short ID。 |
| `ech` | ECH 設定，經過 Base64 編碼與百分比編碼。 |

Potatso 也會匯入 `trojan-go://` 連結，其 `type=original`（無傳輸）或 `type=ws`。帶有 `encryption` 參數（需要 trojan-go 的 Shadowsocks 加密）的連結則不會匯入。

Potatso 分享 Trojan 伺服器時，會提供帶有相同參數的 `trojan://` 連結。

### 範例 {#link-examples}

每個範例都顯示要匯入的連結。密碼是 `secret`。

基本伺服器：

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

透過 `cdn.example.com` 的 WebSocket：

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

服務名稱為 `TrojanGun` 的 gRPC：

```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/zh-hant/protocols/trojan/index.mdx
