Shadowrocket Trojan 節點設定教學:密碼、SNI 與 Allow Insecure 說明

認識 TLS 偽裝原理與 Trojan 協定,逐項說明 Add Server 中 Address、Port、Password、SNI 的設定方式,並解析 Allow Insecure 的風險及握手失敗的排查順序。

本文重點

本文適合已備妥服務商提供的連線參數或訂閱的使用者,說明 Shadowrocket 中 Trojan 的連線位址、驗證密碼與 TLS 名稱如何對應。先釐清網路連線、憑證驗證與協定驗證,再依步驟填寫 Add Server,最後根據逾時、憑證錯誤及驗證失敗等情況縮小排查範圍;不必靠關閉憑證驗證碰運氣。

Trojan 連線的三層檢查

Shadowrocket(小火箭)中的 Trojan 是連線協定類型,不是訂閱網址類型。常見的 Trojan 連線會先與伺服器建立 TCP 連線,再完成 TLS 握手,接著在加密通道中進行 Trojan 驗證與傳輸請求。TLS 讓連線具備 HTTPS 常見的加密傳輸特性,但不代表流量無法被辨識,也不表示目標網站會因此信任代理伺服器。

三層檢查各自處理不同問題:位址與連接埠決定能否連上服務入口;TLS 驗證用來確認對端身分;Trojan 密碼則決定是否有權使用該入口。密碼正確無法補救憑證名稱不符,憑證有效也不能證明密碼正確。排查時應依連線建立順序逐項檢查,不要同時修改多個欄位。

443
常見 TLS 服務連接埠,實際設定以現有參數為準
3 層
TCP 連線 → TLS 握手 → Trojan 驗證
2 種名稱
連線位址與 TLS 服務名稱,用途不同

本文討論常見的 Trojan over TLS 參數。若現有設定還包含 WebSocket 等傳輸選項,也必須一併核對傳輸類型、Host 與路徑,不能只照抄位址、連接埠與密碼。Trojan 與其他協定的欄位不可互換;尤其不要因為參數中出現長字串,就把它當成其他協定的使用者識別碼。

Add Server 欄位對照

手動新增前,先從自己的參數紀錄中找出服務位址、服務連接埠、Trojan 密碼與 TLS 服務名稱。以下網域與位址僅用來說明欄位用途,並非可連線的服務。範例假設連線位址為 192.0.2.10、連接埠為 443,TLS 服務名稱為 gateway.example.com;實際設定時,請替換成自己的完整參數。

欄位設定依據常見錯誤
Type選擇 Trojan選成其他協定,造成驗證方式不相符
Address現有參數中的伺服器網域或 IP 位址貼上完整訂閱 URL,或附上 https:// 與路徑
Port伺服器實際監聽的連接埠,例如 443看到 TLS 就擅自改成 443,覆蓋原有連接埠
Password服務商提供的 Trojan 連線密碼使用帳戶登入密碼,或複製時夾帶空格、換行
SNI現有參數指定的 TLS 服務名稱填入含協定前綴的 URL、IP 位址或任意網站網域
Allow Insecure一般使用時保持關閉,保留憑證驗證誤以為略過憑證驗證就能修復連線

Password 是協定驗證資料,請依原始內容填寫,區分大小寫,不要自行進行雜湊或編碼。匯入連結中的密碼可能經過 URL 編碼,建議直接讓 App 解析原始連結;從網頁複製手動參數時,留意是否混入不可見字元。備註可自行修改,但不是驗證欄位;修改備註不會改變遠端服務身分。

結論:先確認連接埠來源

若現有參數指定其他連接埠,請保留原值;只有參數明確標示 443 時才填 443。連線逾時時先核對 Address 與 Port,不要先改 Password 或關閉憑證驗證。

SNI 與憑證名稱的關係

SNI 是 TLS ClientHello 中用來告知伺服器目標服務名稱的擴充。同一個 IP 位址可以承載多個 TLS 服務,伺服器可能依據 SNI 選擇憑證與後端。因此,Address 可以是用來建立連線的 IP,而 SNI 仍應填入現有設定指定的網域。兩者分工並不矛盾:一個回答「要連到哪裡」,另一個回答「要連線到哪個 TLS 服務」。

憑證驗證還需檢查信任鏈、有效期限,以及憑證是否涵蓋預期的服務名稱。以 gateway.example.com 為例,不能因為伺服器連得上,就任意把 SNI 改成 www.example.com。名稱不符時,即使密碼完全正確,也可能在進入 Trojan 驗證前就失敗。

SNI 不是密碼,也不提供存取授權。一般 TLS 握手中的 SNI 通常不是機密欄位,不應填入敏感權杖。修改 SNI 後若能建立 TLS 連線,也不能單憑這點證明設定可用,還需繼續確認 Trojan 驗證與實際請求。

Allow Insecure:憑證驗證設定

Allow Insecure 控制是否允許略過正常的伺服器憑證驗證。開啟後,即使連線仍經過 TLS 加密,客戶端也無法據此可靠確認對端就是預期伺服器;加密與身分驗證是兩回事。遇到錯誤、遭替換或不受信任的憑證,不應只靠這個開關掩蓋問題。

Allow Insecure 關閉

建議

保留正常的憑證驗證。若出現憑證錯誤,請檢查 SNI、裝置時間、憑證有效期限與伺服器憑證鏈,並修正問題來源。

適用情境:日常連線、長期保存的設定

Allow Insecure 開啟

放寬伺服器憑證驗證,並失去相應的身分確認保障;無法修復錯誤連接埠、錯誤密碼或不相符的傳輸設定。

適用情境:了解風險且受控的短時間診斷,不適合長期使用

如果只有開啟這個選項才能連線,應將情況記錄為「憑證驗證相關問題」,而不是「已修復」。請恢復關閉狀態,並將憑證錯誤資訊交由自己的服務商確認。請勿在無法確認對方身分的連線中進行敏感操作,也不要把長期關閉驗證當成通用排錯方式。

從新增參數到確認請求

若現有訂閱已產生對應的 Trojan 項目,請優先核對匯入項目與原始參數,不必重複手動新增。訂閱管理的項目可能在更新時重新產生,手動修改能否保留取決於項目來源;排查前先記下修改內容,避免將本機修改誤認為遠端問題已修復。

  1. 新增項目

    前往 Home → 點選右上角「+」→ Add Server,並在 Type 中選擇 Trojan。若要檢查現有項目,請開啟該項目的編輯頁面,不要另建同名項目。

  2. 填寫參數

    依序核對 Address、Port、Password 與 SNI。讓 Allow Insecure 保持關閉;依現有參數填寫傳輸附加選項,不要額外啟用未提供的設定,完成後儲存。

  3. 選取伺服器

    返回 Home,選取剛儲存的 Trojan 項目。記下原本的 Global Routing 設定,短時間選擇 Proxy,以減少規則分流對測試的干擾。

  4. 送出請求

    開啟連線開關,首次連線時依系統提示授權 VPN 設定。使用自己已知可存取的測試頁面送出新請求,並核對結果與 App 記錄;只有延遲讀數並不足以證明完整請求成功。

  5. 恢復分流設定

    測試結束後,恢復原本的 Global Routing 設定。若使用 Proxy 時正常,切回 Config 後卻出現異常,請檢查目前 Config 的規則比對與策略指向,不要繼續盲目修改 Trojan 密碼。

Global Routing 中的 Proxy 是路由模式,規則中的 PROXY 則是策略關鍵字,兩者不是同一個欄位。暫時切換至 Proxy 只能協助排除規則因素,無法取代憑證與驗證檢查。測試期間也不必同時調整 Settings → On Demand;按需連線條件與單一 Trojan 參數屬於不同的排查範圍。

握手失敗的排查順序

先記錄失敗發生在哪一層,再一次只變更一個項目。記錄中的措辭可能因系統與錯誤來源而異,以下依現象分類,不應將單一提示視為唯一診斷依據。回報問題時,請保留錯誤類型、發生時間、網路類型及已核對的欄位,並隱去 Password 與完整訂閱連結。

  1. 網域無法解析:確認 Address 沒有拼錯或多出路徑,再檢查目前網路的 DNS 解析。若位址本身無法解析,修改 Trojan 密碼也沒有幫助。
  2. 連線逾時或遭拒:核對 Address 與 Port,並確認服務是否在該連接埠監聽。逾時可能與網路路徑有關,遭拒可能是連接埠未開放,不能只憑現象斷定故障來自哪一端。
  3. TLS 或憑證錯誤:核對 SNI、裝置時間、憑證名稱與有效期限;請服務商檢查憑證鏈及對應的 TLS 服務,並保留憑證驗證。
  4. TLS 後立即中斷:重新核對 Type、Password 與傳輸選項;握手完成後中斷不一定代表密碼錯誤,也應參照伺服器記錄判斷。
  5. 連線後部分請求失敗:檢查 Global Routing 與目前的 Config,確認請求是否經過所選項目,再區分目標網站故障、DNS 問題與規則影響。

密碼複製正確,為什麼還是連不上?

先確認複製的是 Trojan 的 Password,而不是帳戶登入密碼。前往 Home 中該項目的編輯頁,檢查前後空格、換行與大小寫;接著核對連接埠與 SNI,不必反覆修改正確的密碼。

Address 填 IP,SNI 也要填 IP 嗎?

不一定。若現有參數提供網域作為 TLS 服務名稱,SNI 就填該網域;Address 則保留用來連線的 IP。不要把範例網域套用到自己的設定,也不要任意挑選能開啟的網站網域。

開啟 Allow Insecure 就能連線,可以一直開著嗎?

不應將這種情況當成長期解決方案。請恢復關閉狀態,核對 SNI 與裝置時間,並請自己的服務商檢查憑證有效期限與憑證鏈;這類變化表示驗證環節需要處理,不能證明服務身分可靠。

訂閱更新後又失效,該改哪裡?

先比較更新前後的 Address、Port、SNI 與傳輸設定,並確認 Home 中實際選取的項目。若更新覆蓋了本機修改,請回到原始訂閱參數確認來源;不要在公開求助內容中貼出密碼或完整訂閱權杖。

最後請區分 App 取得方式與連線服務:Shadowrocket 是閉源商業 App,透過 App Store 一次性買斷,主要用於 iPhone、iPad;系統需求以 App Store 頁面標示為準。買斷客戶端 ≠ 線路方案。本文僅說明如何使用自己已有的參數,不提供、不販售、不推薦連線服務或訂閱。

下載 Shadowrocket