設定 Trojan 前,先核對 Address、Port、Password,再確認 TLS 的 Server Name(SNI)與憑證驗證。本文適合已有服務商與連線參數,準備在 iPhone 或 iPad 上填寫 Shadowrocket 表單的使用者。依序檢查可區分連線逾時、憑證錯誤、驗證失敗與規則未命中,避免把所有問題都歸咎於 Password。
Trojan 的連線順序:先 TLS,再驗證
標準 Trojan 使用 TLS 保護用戶端與伺服器之間的通訊。Shadowrocket 會先連線至指定的位址與連接埠,再進行 TLS 交握及伺服器身分驗證,接著在加密通道中傳送 Trojan 驗證資訊與目標請求。因此,連接埠可連通不代表 Password 正確;TLS 成功也不代表伺服器已接受驗證。
Address 用來找到伺服器,SNI 則是在 TLS 交握時指定要連線的伺服器名稱;正常的身分驗證還需要依預期名稱核對憑證。這些值可能彼此相關,但不能互相取代。本文中的網域與連接埠僅用來說明欄位,並非可用的連線參數;實際值請向你的服務商取得。
重點:憑證錯誤先檢查名稱
若出現明確的憑證驗證錯誤,請先核對 SNI、憑證涵蓋的網域及裝置時間,不要先更換 Password;Password 無法修正 TLS 身分驗證失敗。
逐項填寫 Add Server 表單
在 Home 右上角點選「+」進入 Add Server,將 Type 設為 Trojan,再逐項填寫。部分 TLS 選項可能位於次級設定中,實際欄位請以目前的應用程式介面為準。不要為了填滿每個欄位而自行補上未提供的參數。
| 欄位 | 填寫依據 | 常見錯誤 |
|---|---|---|
| Type | 選擇 Trojan,與伺服器端使用的協定一致。 | 將其他協定的位址和憑證填入 Trojan 表單。 |
| Address | 填入伺服器網域或 IP,例如示範網域 edge.example.com。 |
貼上含有 https://、路徑或查詢參數的完整網址。 |
| Port | 依提供的值填寫,例如示範連接埠 443。 |
擅自將非 443 連接埠改成 443,或把連接埠一併填入 Address。 |
| Password | 填入該 Trojan 服務的驗證 Password,並保留大小寫與特殊字元。 | 使用服務商網站的登入 Password,或複製時連同空格、換行一起貼上。 |
| TLS | 標準 Trojan 仰賴 TLS;請依提供的設定核對相關選項。 | 把 TLS 當成可以任意關閉的加速選項。 |
| SNI / Server Name | 填入服務商指定的 TLS 伺服器名稱,只填主機名稱。 | 填入完整網址、目標網站網域,或任意與憑證無關的名稱。 |
| Allow Insecure | 一般使用時請保持關閉,並保留伺服器憑證驗證。 | 遇到任何連線失敗就開啟,以掩蓋憑證問題。 |
Trojan Password 不等於其他協定中的 UUID,也不等於訂閱連結中的 token。若透過連結匯入,讓應用程式解析完整連結即可;手動填寫時應使用解析後的原始 Password,不要直接把連結中的百分比編碼當成 Password。若無法確認,請向服務商核對欄位,不要反覆猜測。
從新增到測試:一次只變更一個條件
首次測試建議先使用一筆參數完整且已知的設定。儲存前逐項核對,儲存後再確認流量是否確實經過所選伺服器。Home 中的連線開關已開啟,只能表示系統連線狀態,無法單獨證明某個網站請求經由 Trojan 伺服器傳送。
-
選擇協定
Home → 右上角「+」→ Add Server → Type → Trojan。不要只憑伺服器名稱判斷協定,請以參數說明為準。
-
填寫驗證資料
返回表單,填寫 Address、Port、Password。Address 不含協定前綴,Port 請另外填寫,並留意 Password 前後是否有空格。
-
核對 TLS
檢查 TLS 相關設定,依提供的值填入 SNI / Server Name,並保持 Allow Insecure 關閉。若未提供其他傳輸參數,請勿自行新增。
-
儲存並選取
儲存後返回 Home,選取剛新增的伺服器。若先前已連線,修改參數後請重新連線,避免以舊連線判斷新設定。
-
排除規則影響
記下 Home → Global Routing 目前的設定,短暫切換為 Proxy,使用相同目標送出新請求。測試結束後,請恢復原本的路由設定。
SNI、憑證與 Allow Insecure 的適用界線
Address 與 SNI 不一定相同。例如 Address 是伺服器 IP,而 SNI 是憑證涵蓋的網域,這種設定可以成立;前提是伺服器確實依該名稱提供正確憑證,且用戶端能完成相應的身分驗證。反之,僅因某個網域能開啟網頁就填入 SNI,並不能讓 Trojan 連線成功。
憑證驗證通常會檢查受信任的簽發鏈、有效期限及名稱是否相符。裝置日期明顯錯誤也可能造成驗證失敗。SNI 不會自動修復過期憑證,也不保證能解決網路連線問題;同樣地,任意更換 SNI 可能讓伺服器回傳另一張憑證,甚至拒絕交握。
關閉 Allow Insecure
建議保留伺服器憑證驗證。若發生錯誤,先核對名稱、裝置時間與憑證狀態,再請服務商修正憑證或提供正確參數。
適用情境:日常連線與正式儲存的設定
開啟 Allow Insecure
這會放寬憑證驗證,不代表憑證已修復。即使通訊仍使用 TLS,也無法據此確認對端身分;不應作為長期解決方式。
適用情境:了解風險後,在受控環境中短暫排查憑證驗證問題
重點:保留可驗證的設定
若只有開啟 Allow Insecure 才能連線,請記錄憑證相關錯誤並向服務商核對;不要直接將此狀態視為設定完成。
ALPN、傳輸方式及其他進階選項也必須與伺服器端一致。不要直接套用網路上其他設定中的 h2、http/1.1 或 WebSocket 參數。Trojan 驗證、TLS 與承載傳輸屬於不同層;新增選項不代表相容性更好。
常見問題:依現象決定下一步
以下提供排查方向,並非每種錯誤都只對應單一原因。保留完整錯誤訊息與測試條件,比只說「連不上」更有幫助。向服務商回報時,請說明使用 Wi-Fi 或行動網路,以及在哪個階段失敗,但不要公開 Password 或完整訂閱連結。
Password 明明照抄了,為什麼仍然連線逾時?
先回到 Home 編輯該伺服器,核對 Address 與 Port,再分別使用 Wi-Fi 和行動網路重複相同請求。連線逾時可能發生在驗證之前;若更換本地網路後結果不同,應繼續檢查網路連線能力,而非只修改 Password。
出現憑證錯誤時,SNI 應填哪個網域?
填入服務商明確提供的 TLS 伺服器名稱,而非目前正在造訪的網站網域。檢查裝置日期與時間,再核對名稱拼寫;若名稱正確但憑證仍驗證失敗,請服務商檢查憑證有效期限與憑證鏈。
有延遲數值,為什麼網頁還是打不開?
延遲測試結果不能取代完整的服務請求。確認 Home 中已選取該伺服器,再前往 Global Routing 暫時選擇 Proxy,送出新請求。若仍然失敗,請繼續檢查 TLS、驗證與目標連線狀況,不要只憑延遲數值判定參數無誤。
使用 Proxy 可以連線,切回 Config 卻失敗,該怎麼辦?
前往 Config 核對目前選取的設定與相關規則,確認請求是否套用到預期的策略。對照 DOMAIN-SUFFIX、IP-CIDR、GEOIP 與 FINAL 的比對條件及順序;也請檢查 DNS,不要立刻認定是 Trojan Password 錯誤。
更新訂閱後,手動修改的 SNI 又變了?
檢查更新後的伺服器欄位是否由訂閱內容重新產生。保留一筆手動設定作為對照,並向服務商確認訂閱提供的 SNI 與 Port。訂閱連結請向服務商取得;修改訂閱項目之前先記下原始值,避免更新內容與手動修改互相覆蓋。
儲存設定前的核對清單
完成測試後,應分別確認「參數正確」與「路由正確」。Global Routing 中的 Proxy、Direct、Config、Scene 對流量的處理方式各不相同;本次短暫使用 Proxy 是為了減少規則變數,並非要求日常一直維持此模式。恢復原本的使用設定後,再重複相同請求,確認結果仍符合預期。
- 連線參數:Type 設為 Trojan,Address、Port、Password 與服務商提供的值一致;沒有把訂閱網址當成伺服器位址。
- 身分驗證:SNI 使用指定名稱,Allow Insecure 保持關閉,裝置時間正確,沒有透過忽略憑證錯誤完成設定。
- 路由條件:確認目前的 Global Routing 設定;使用 Config 時,核對所選設定、規則順序與策略目標。
- 更新行為:區分手動新增的項目與透過 Subscribe 匯入的項目;訂閱更新後重新檢查有變動的欄位。
- 資訊保護:回報問題時,隱藏 Password、驗證 token 與完整訂閱連結,並保留錯誤類型及必要的非敏感測試條件。
Shadowrocket 是 Apple 平台上的閉源商業 App,主要供 iPhone、iPad 使用,唯一取得管道為 App Store;系統需求與相容性請以 App Store 頁面標示為準。App 一次性買斷不等於連線服務方案;本文以使用者已有自己的服務商與參數為前提,不提供、不販售或推薦節點或訂閱。