在 Shadowrocket(小火箭)中設定 Trojan 時,請逐項填入服務商提供的參數:Address 是連線位址、Port 是服務埠、Password 用於驗證,SNI 則是在 TLS 交握時提供的伺服器名稱。本文適合已有合法可用設定、需要手動輸入或核對匯入結果的使用者。請先檢查各項參數,再分別排查 TLS、驗證與規則分流問題;不要反覆更換埠號或關閉憑證驗證碰運氣。
一、Trojan 連線中,TLS 與 Password 各自負責什麼
一般 Trojan 連線會先與伺服器建立 TCP 連線,再進行 TLS 交握,接著在加密通道中傳送包含驗證資訊的 Trojan 請求。TLS 負責加密傳輸及驗證伺服器身分,Password 則供伺服器確認用戶端是否有使用權限。密碼正確不代表憑證一定有效,憑證有效也不代表密碼一定正確。
因此,建議依照「解析位址 → 連接埠可連線 → TLS 交握 → Trojan 驗證 → 實際請求」的順序排查。一般網頁能開啟,只表示裝置具備基本網路連線;延遲測試有數值,也無法單獨證明 Trojan 驗證及目標網站存取均已成功。
建議:先保留服務商提供的值
逐項比對原始參數與表單內容;只有確認某項有誤時,才修改該項並重新測試。將 Port 改成 443,或把 SNI 改成 Address,都不是通用的修復方法。
二、Add Server 表單:四項參數的填寫方式
在 Home 右上角點選「+」進入 Add Server,先將 Type 設為 Trojan,再填寫其他欄位。介面語言或表單配置不同時,SNI 可能顯示為 TLS 相關的伺服器名稱欄位;請依欄位用途核對,不要填入備註或 Password。以下地址與密碼僅用於說明格式,無法用來連線。
| 欄位 | 範例 | 填寫規則與常見錯誤 |
|---|---|---|
Type | Trojan | 必須與原始設定一致,不能只因為同樣使用 TLS 就改選其他協定。 |
Address | edge.example.com | 填入伺服器網域名稱或 IP 位址,不要包含 https://、路徑、查詢參數或連接埠尾碼。 |
Port | 443 | 只填數字。若原始設定為 8443,就保留 8443,不要擅自改成常見值。 |
Password | demo-password-not-valid | 照原值複製,注意大小寫、前後空格及換行;這不是 App Store 帳號密碼。 |
SNI | tls.example.com | 填入既有設定指定的 TLS 伺服器名稱,通常是網域名稱;不要加上通訊協定、路徑或連接埠。 |
Address 和 SNI 可以相同,也可以不同。例如 Address 是連線入口的 IP,而 SNI 是伺服器憑證所對應的網域名稱。此時不能把 SNI 也改成該 IP。TLS 的 SNI 擴充功能用於指出伺服器名稱;憑證鏈是否可信、憑證名稱是否相符,仍須正常驗證。
三、手動新增並完成首次連線
新增前請備妥完整的 Trojan 參數。如果服務商提供的是訂閱連結,建議優先透過訂閱方式匯入,再核對建立的項目;只有取得明確的個別參數時,才依照下列步驟手動填寫。訂閱網址不能直接填入 Address。
-
開啟表單
開啟 Home → 點選右上角「+」→ Add Server,在 Type 中選擇 Trojan。為項目設定容易辨識的備註,避免與先前儲存的相似項目混淆。
-
填寫位址
依序填寫 Address 和 Port。若取得的格式為「網域名稱:連接埠」,請分開填入兩個欄位;不要將完整分享連結貼到 Address。
-
核對驗證資訊
填入 Password 和 SNI,保留原始 TLS 設定。如果既有設定另包含 WebSocket 等傳輸參數,也須依原值設定對應選項;只填這四項不代表資訊已完整。
-
儲存並選取
儲存後返回 Home,選取剛建立的項目。確認目前的 Global Routing 選項,再啟用連線;首次使用時,請依系統提示允許新增 VPN 設定。
-
測試請求
在 Home 執行 Connectivity Test,再開啟已知可用的 HTTPS 網頁。查看連線記錄,確認請求是否依所選策略處理;測試結束後,請恢復平常使用的路由設定。
若已啟用 Settings → On Demand,請記下目前的條件。按需連線可能會再次觸發連線,排查時要分辨是條件觸發了連線,還是所選 Trojan 項目確實可用。若需暫時停用,測試後請恢復原有條件,不要刪除所有設定。
四、連線成功但存取異常:釐清 Global Routing 模式
在 Home 選取項目,不代表所有請求都會使用該項目。Global Routing 會決定請求如何套用策略;若目前是 Direct,網頁存取結果無法用來判斷所選 Trojan 項目是否正常。以下僅比較 Shadowrocket 本身的路由設定,不涉及服務來源的選擇。
Config
建議依目前啟用的設定規則決定請求的去向。DOMAIN-SUFFIX 比對網域後綴,IP-CIDR 比對 IP 網段,GEOIP 依 IP 地理位置比對,FINAL 則處理先前未符合規則的請求;最終結果仍取決於規則順序及目標策略。
適用情況:已核對規則的日常使用;不要假設未符合規則的請求一定會直連。
Proxy
將進入用戶端處理範圍的請求交由代理策略處理,方便暫時排除規則的影響。此模式無法修正 Password 或 TLS 設定錯誤,也不代表一定會接管所有裝置流量。
適用情況:短時間確認所選 Trojan 項目能否處理實際請求。
Direct
讓請求直接連線至目標,不經所選代理項目轉送。切換到 Direct 後網頁能開啟,只能作為直連路徑的對照結果。
適用情況:比較基本網路狀態,不能用來驗證 Trojan 參數。
Global Routing 中的 Scene 可依使用情境套用相應設定;排查時還須確認目前情境實際採用的策略。不要只看 Home 中項目的選取標記,而忽略情境與規則的最終結果。
建議:分開進行暫時測試與日常設定
如果 Proxy 下的請求正常,但 Config 下同一請求異常,請先查看符合的規則及其策略;如果兩種設定都失敗,再回頭逐一排查 Address、Port、TLS 和 Password 的連線流程。
五、常見填寫問題:依症狀排查
錯誤提示只能協助縮小排查範圍,不能取代參數核對。以下是可供判斷的常見狀況,不代表任何特定裝置的實測結果。每次修改後,請以相同目標重試,並記錄目前網路、所選項目、路由設定及具體提示,避免同時變更多個因素。
一直逾時,是 Password 錯了嗎?
不一定。先前往 Home → 選取項目 → 編輯,核對 Address 和 Port,再確認網域名稱能否解析,以及目前網路能否連上該連接埠。逾時可能發生在 TCP 連線或交握階段,不能只因逾時就重設密碼。
顯示憑證名稱不相符,SNI 應該填什麼?
填入既有服務商明確提供的伺服器名稱,並確認沒有附上 https:// 或 :443。如果 Address 是 IP,而原始設定另有網域名稱,請保留該網域名稱作為 SNI;若仍出現錯誤,請確認伺服器憑證,不要略過驗證來掩蓋問題。
Password 已經複製了,為什麼仍然驗證失敗?
請重新從原始設定複製,檢查大小寫、尾端換行,以及是否誤用了帳號登入密碼。手動填寫表單時,請輸入實際密碼,不要照抄連結中的百分比編碼;若服務商已更新驗證資訊,請更新既有訂閱或替換相應參數。
測得到延遲,為什麼網頁還是打不開?
先確認 Global Routing 不是 Direct,再核對目前請求所套用的規則策略。若只有網域請求失敗,請進一步檢查 DNS 解析結果;若所有請求都失敗,則核對 TLS、驗證資訊及其他傳輸參數。延遲測試不能取代完整的應用程式存取測試。
六、分享連結、訂閱更新與參數安全
trojan:// 通常代表單一分享連結,常見結構包含驗證資訊、伺服器位址、連接埠及查詢參數。它不是一般網頁網址,也不是會自動更新的一組訂閱內容。透過 Shadowrocket 的掃描或剪貼簿入口匯入後,仍應開啟項目核對 Type、Address、Port、Password 及 TLS 相關選項。
以 https://example.com/sub?token=xxxx 為例,這只是無法使用的訂閱格式示意。實際訂閱網址可能包含存取憑證,請透過訂閱入口儲存,讓用戶端取得其中的項目;不要將整段 URL 填入 Trojan 的 Address。訂閱產生的項目更新時可能會被覆寫,若要長期修改,請先確認設定的管理方式。
- 更新既有訂閱後,請確認服務端是否變更連接埠、密碼或 SNI;不要只看備註名稱是否相同。
- 保留可還原的原始設定。需要進行對照測試時,可以另外建立手動項目,避免直接修改唯一可用的訂閱項目。
- 尋求排查協助時,請遮蔽 Password、訂閱 token 及完整分享連結;只提供必要的欄位類型與錯誤訊息。
- 若無法確認其他傳輸參數,請向既有服務商索取完整設定,不要根據一般 Trojan 範例猜測 WebSocket 路徑等設定。