本文適合已取得服務參數,準備在 Shadowrocket 新增 Trojan 連線的使用者。先分清網路位址、TLS 身分與協定憑證,再依照 Add Server 的欄位完成設定,最後透過分層檢查找出連線逾時、憑證錯誤或連線後無法存取等問題。範例中的網域與密碼皆為虛構資料,無法用於連線。
Trojan 原理:TLS 連線與 Password 驗證各自負責什麼
Shadowrocket(小火箭)的 Trojan 類型用於連線至相符協定的伺服器。一般 Trojan 連線會先與伺服器建立 TCP 連線,再進行 TLS 握手;TLS 通道建立後,客戶端才會傳送 Trojan 協定驗證資料與目標請求。TLS 負責傳輸保護及伺服器身分驗證,Password 負責協定層驗證,兩者不能互相取代。
Address 指向實際連線的伺服器,Port 指定伺服器的監聽連接埠。SNI 會在 TLS 握手時告知伺服器預期連線的主機名稱;憑證驗證還會確認憑證信任鏈、有效期限及主機名稱是否符合要求。因此,位址連得上不代表 TLS 驗證一定通過;TLS 驗證通過也不代表 Password 正確。
本文以一般 Trojan over TLS 為例。若既有參數另有指定 WebSocket、Host 或 Path,請逐項依照伺服器設定,不要直接用本文的基本範例覆蓋原有設定。只變更 Type,無法將其他協定的伺服器轉換成 Trojan 伺服器。
設定前準備:分開整理連線參數與 TLS 參數
以下內容以使用者已有服務供應商與訂閱為前提。本網站不提供、不販售,也不推薦節點或訂閱。開始前應先取得完整參數,不要只憑伺服器位址猜測其他欄位。密碼、訂閱連結及完整分享連結都可能含有存取憑證,請勿放入公開截圖或疑難排解紀錄。
基本連線範例
- Type
- Trojan
- Address
edge.example.com- Port
443- Password
demo-only-not-valid
以上皆為說明用的虛構資料;實際設定時請使用自己已有的參數。
TLS 檢查範例
- SNI
tls.example.com- 憑證身分
- 憑證名稱須涵蓋用於驗證的主機名稱
- 憑證信任
- 信任鏈與有效期限須通過驗證
- Allow Insecure
- 若有此選項,正常使用時請保持關閉
SNI 與 Address 可以不同,但必須有伺服器設定作為依據。
如果 Address 是 IP 位址,而伺服器使用網域憑證,通常仍須依提供的參數,將對應網域填入 SNI。不要為了「保持一致」就直接把 IP 位址複製到 SNI,也不要隨意改成常見網站的網域名稱。此名稱須符合伺服器的 TLS 設定,也須符合憑證身分驗證的要求。
- Address 僅填寫主機名稱或 IP 位址,不要加上
https://、路徑或結尾斜線。 - Port 請單獨填入數字。例如伺服器實際監聽
8443,客戶端就應填寫8443,不可因為啟用 TLS 就改成443。 - Password 請照原樣填寫,保留大小寫與特殊字元,並確認複製時沒有多帶空格或換行。
- SNI 請填寫主機名稱,不要加上協定前綴、連接埠或路徑;若缺少此項,應確認原始參數,不要自行猜測。
Add Server 操作:先填寫,再儲存並選取連線
在 Shadowrocket 中,Home 用來管理及選取連線,Config 用來管理設定檔與規則,Settings 用來調整 App 設定。新增單一 Trojan 連線時,應從 Home 的新增入口開啟 Add Server,而不是把 Address 或 Password 填進 Config 的規則清單。
- 開啟 Home,點選右上角的新增按鈕進入 Add Server,將 Type 設為
Trojan。 - 依照原始參數填寫 Address 與 Port。若原始資料以「主機名稱:連接埠」的格式提供位址,請拆開填入兩個欄位。
- 填寫 Password。此處使用伺服器提供的 Trojan 密碼,不是 App Store 購買憑證,也不是憑證檔案的內容。
- 檢查 TLS 相關設定,依照原始參數填寫 SNI;若畫面顯示 Allow Insecure,正常使用時請保持關閉。其他傳輸選項也應與伺服器設定一致。
- 儲存後返回 Home,選取剛新增的連線,再開啟連線開關。首次出現系統 VPN 設定授權提示時,確認 App 後完成授權。
- 檢查 Global Routing,再前往明確需要透過此連線存取的目標,記錄存取結果與錯誤訊息。
若透過既有訂閱匯入,請先檢查匯入後的 Type、Address、Port 與 TLS 參數是否完整。更新訂閱可能會重新寫入由訂閱管理的項目;暫時排除問題前,請先記錄修改內容,並區分「本機手動修改」與「訂閱來源回傳的值」。不要長期依賴修改訂閱項目的方式來修正來源端錯誤。
欄位與錯誤現象:依失敗階段檢查,不要只看延遲
連線測試結果只反映特定測試目標與測試方式下的狀況。出現延遲數值,不代表所有目標都能存取,也無法證明驗證、DNS 與規則全都正確。排除問題時,先記下失敗階段,再檢查相應欄位;下表列出的是常見線索,並非錯誤與原因一一對應。
| 欄位或階段 | 常見現象 | 優先檢查項目 |
|---|---|---|
| Address | 無法解析主機名稱,尚未建立連線 | 網域拼寫、目前網路的 DNS、是否誤加 URL 路徑 |
| Port / TCP | 連線逾時或遭拒絕 | 實際監聽連接埠、網路是否可連通、伺服器是否接受連線 |
| SNI / TLS | 憑證名稱不符或 TLS 握手失敗 | SNI、憑證涵蓋的名稱、伺服器 TLS 設定及裝置時間 |
| Password | 建立連線後請求失敗或連線很快中斷 | 密碼大小寫、空白字元,以及伺服器驗證紀錄 |
| 規則與目標 | 部分網站正常,特定目標無法存取 | Global Routing、命中策略、目標 DNS 與目標本身的狀態 |
結論:憑證錯誤先檢查 SNI,不要以略過驗證取代修正
遇到憑證名稱不符時,先逐字比對 SNI 與伺服器提供的憑證網域;遇到有效期限錯誤時,檢查裝置日期與憑證狀態。不要長期以開啟 Allow Insecure 作為解決方式。
略過憑證驗證會削弱伺服器身分確認,無法修正連接埠錯誤、密碼錯誤或伺服器無法連線等問題。即使關閉驗證後狀況有所變化,也只表示問題可能與 TLS 身分驗證有關,不能據此確認連線安全。若環境需要使用自訂信任資料,應由服務管理方提供可供核對的設定說明。
連線後仍無法存取:區分 Global Routing 與 Trojan 參數
Trojan 參數決定如何連線至選取的伺服器,Global Routing 則決定請求採用哪種路由模式。Proxy、Direct、Config、Scene 並非四種協定:Proxy 使用代理路徑,Direct 採用直接連線,Config 依設定規則決定策略,Scene 則依設定的情境處理。排查單一連線時,應先確認目前的路由模式,再判讀存取結果。
- 暫時驗證代理路徑時,可在 Home 將 Global Routing 設為 Proxy,並確認選取的是待測的 Trojan 連線。測試後請還原原本的路由模式。
- 若 Proxy 模式下可存取,但 Config 模式下失敗,請檢查目前啟用的 Config 與命中策略,不要立刻重新填寫 Password。
- 規則依由上而下的順序比對,命中第一條規則後即決定策略。
DIRECT不會透過所選的 Trojan 連線,REJECT則會拒絕請求。 FINAL用來處理前面規則皆未命中的請求,通常放在規則末尾;個別網域的例外規則,應排在涵蓋範圍更廣的規則之前。
以下僅示範規則順序,網域為說明用的虛構資料,並非可用服務。第一條讓更精確的網域直接連線,第二條讓該網域後綴下的其他請求使用 PROXY,最後以 FINAL 作為預設規則。套用前也須確認目前設定中的 PROXY 指向預期的代理選項。
DOMAIN,local.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,PROXY
Settings → On Demand 用來設定依條件觸發連線,不會修正 Trojan 的 Address、SNI 或 Password。手動連線尚未確認成功前,請先維持可控的手動測試流程;基本連線正常後,再檢查 On Demand 條件是否符合預期。自動觸發 VPN 與目標命中 PROXY 是兩項不同的判斷。
Trojan 設定常見問題
Address 填 IP 時,SNI 可以留空嗎?
請先確認已有的參數。如果伺服器依靠網域選擇 TLS 服務,或使用網域憑證,就應填入指定的 SNI。若只有 IP 位址而缺少 TLS 身分資訊,請向服務管理方確認,不要逐一嘗試網域名稱。
Port 一定要填 443 嗎?
不一定。443 是常見連接埠,實際值必須與伺服器的監聽設定一致。若提供的連接埠是 8443,就在 Port 填入 8443,並確認 Address 中沒有重複附加連接埠。
Password 需要先編碼或轉換嗎?
手動填寫時請使用原始密碼,不要自行計算摘要,也不要把分享連結中的跳脫文字直接當成密碼。匯入連結後若驗證失敗,請將解析出的 Password 與原始參數核對,特別檢查特殊字元及多餘空白。
更新訂閱後又無法連線,該先檢查哪裡?
先在 Home 開啟該項目的編輯頁面,確認 Type、Address、Port、SNI 是否已更新,並確認目前選取的項目沒有變更。若訂閱來源持續回傳錯誤值,應修正來源端參數;更新訂閱本身不代表連線已確認可用。
可以直接把 TLS 錯誤截圖傳給別人嗎?
可以提供已遮蔽敏感資訊的錯誤文字、失敗階段與發生條件,但請隱藏 Password、完整訂閱連結及分享連結中的憑證。排除問題通常只需說明連接埠、SNI 與憑證名稱是否一致,不必公開完整連線資料。
完成設定後,請依序複核:選取正確項目、確認 Global Routing、驗證目標存取,再還原日常規則與自動連線條件。若要繼續查閱協定與規則,請前往技術參考;若只在特定網路下失敗,請記錄 Wi-Fi 與行動網路的差異,避免將網路連通性問題誤判為密碼錯誤。