Trojan 出站欄位
本頁說明 Clash 生態用戶端 proxies 陣列中的 Trojan 出站欄位。Trojan 使用密碼認證並強制啟用 TLS,用戶端必須同時匹配伺服器端位址、連接埠、密碼和 TLS 名稱。
最小設定由四個通用必填欄位和 password 組成。SNI 可以留空並回落到 server 位址,但使用網域憑證、CDN 或 Reality 時通常需要明確填寫。
name必填- 節點名稱,在同一份設定中不可重複。
type必填- 固定填寫
trojan。 server必填- Trojan 伺服器端的網域或 IP 位址。
port必填- 伺服器端監聽連接埠,常見為 443,但應以伺服器端設定為準。
password必填- Trojan 伺服器密碼,必須與伺服器端分配的值完全一致。
TLS、SNI 與憑證驗證
Trojan 在目前核心中強制啟用 TLS,不需要依靠 tls: true 才變成 TLS 節點。下面欄位用於確定握手名稱、ALPN、用戶端指紋和憑證驗證方式。
sni可選- TLS 伺服器名稱。留空時使用
server位址,網域憑證或 CDN 情境通常需要明確匹配。 alpn可選- TLS 應用層協議清單,必須與伺服器端和所選傳輸層相容。
client-fingerprint可選- uTLS 用戶端指紋,例如
chrome或random,不是憑證指紋。 fingerprint可選- 伺服器端憑證的 SHA-256 指紋,與
client-fingerprint含義不同。 skip-cert-verify謹慎- 設為
true會跳過憑證驗證,不應作為長期疑難排解方案。 name-cert-verify可選- 只修改憑證 DNSName 驗證目標,不會修改傳送的 SNI。
certificate / private-key可選- 兩者同時填寫時啟用用戶端 mTLS,普通 Trojan 節點通常不需要。
Reality 與其他 TLS 載體
Reality、ShadowTLS、Restls 和 JLS 都屬於 TLS 連線層擴展。只有伺服器端明確啟用相應能力時才新增,不要同時啟用多套相互衝突的連線層設定。
reality-opts.public-keyReality- 伺服器端 Reality 私鑰對應的公鑰。
reality-opts.short-idReality- 填寫伺服器端允許的 short ID 之一。
reality-opts.support-x25519mlkem768可選- 用於聲明支援 X25519-MLKEM768 金鑰交換,需伺服器端同時支援。
shadow-tls-opts按伺服器端- 僅在伺服器端使用 ShadowTLS 時填寫版本和密碼,並繼續使用
sni作為握手名稱。 restls-opts按伺服器端- 僅在伺服器端使用 Restls 時填寫密碼與 TLS 版本提示。
jls-opts按伺服器端- 僅在伺服器端使用 JLS 時填寫使用者名稱和密碼。
選擇 Trojan 傳輸層
Trojan 目前只把 WebSocket 和 gRPC 列為可選傳輸層。未填寫 network 或填寫其他值時按 TCP 處理。
| network | 配套欄位 | 適用說明 |
|---|---|---|
| tcp | 無專用 opts | 預設傳輸層 |
| ws | ws-opts | WebSocket 路徑、Host 和 Early Data |
| grpc | grpc-opts | gRPC 服務名和連線參數 |
network可選- 只使用
ws或grpc;其他值會按 TCP 處理。 ws-optsWebSocket- 路徑、Host 和 Early Data 欄位必須與伺服器端或反向代理一致。
grpc-optsgRPCgrpc-service-name和連線參數必須與伺服器端一致。smux僅 TCP- 通用 sing-mux 只適用於 TCP 傳輸,不要與 gRPC 自身重用概念混用。
UDP 與 trojan-go AEAD 擴展
UDP 開關和 trojan-go 的 Shadowsocks AEAD 擴展互不相關。普通 Trojan 節點不需要 ss-opts。
udp可選- 通用欄位,預設
false。需要代理 UDP 時設為true,並確認伺服器端支援。 ss-opts.enabled可選- 僅在 trojan-go 伺服器端啟用 Shadowsocks AEAD 擴展時設為
true。 ss-opts.method預設 aes-128-gcm- 可用
aes-128-gcm、aes-256-gcm或chacha20-ietf-poly1305。 ss-opts.password啟用時必填- trojan-go AEAD 擴展密碼必須非空,且不替代頂層
password。
基礎設定與錯誤檢查
示例展示普通 Trojan over TLS 節點。伺服器端未啟用 WebSocket、gRPC、Reality 或 ss-opts 時,不要自行補充這些欄位。
- 把
network寫成h2,誤以為它與alpn: [h2]是同一個設定。 - SNI、憑證驗證名稱和反向代理網域不一致,導致 TLS 握手失敗。
- 只填寫
ss-opts.password,卻漏掉頂層必填的 Trojanpassword。 - 伺服器端是 gRPC,用戶端仍按預設 TCP 連線,或
grpc-service-name不一致。
proxies:
- name: trojan-tls
type: trojan
server: edge.example.com
port: 443
password: your-trojan-password
sni: origin.example.com
alpn:
- h2
- http/1.1
client-fingerprint: chrome
udp: true
network: tcp