設定 Trojan 時,先核對 Type、Address、Port 和 Password,再依現有設定填寫 SNI;一般情況下,Allow Insecure 應保持關閉。本文適合已有服務商提供的參數或訂閱的使用者,依「建立連線 → 驗證憑證 → 協定驗證 → 檢查路由」的順序說明欄位與排除問題的方法。範例值僅供格式說明,無法用於連線。
Trojan 連線會先經過 TLS,再進行驗證
Shadowrocket(小火箭)中的 Trojan 是一種代理協定類型,並非只要填入密碼就能使用的服務。用戶端需要知道要連線的伺服器、連接埠,以及伺服器接受的 Password。購買用戶端與取得連線服務是兩回事;本文以使用者已有自己的服務商與訂閱為前提,本網站不提供、不販售、不推薦節點或訂閱。
典型的 Trojan 連線會先與目標位址建立底層連線,再進行 TLS 交握。TLS 階段會驗證伺服器憑證及其名稱;通道建立後,用戶端才會傳送 Trojan 協定驗證資訊與目標請求。因此,Password 正確也無法修正憑證名稱不符,修改 SNI 也無法修正錯誤的 Password。
- 連線目標:Address 和 Port 決定實際連線的伺服器入口。若使用網域名稱,通常還需要先完成 DNS 解析。
- TLS 交握:SNI 用於在交握時指定伺服器名稱;用戶端也會依設定驗證憑證鏈與憑證中的名稱。
- Trojan 驗證:Password 必須與伺服器接受的憑證相符,不能以訂閱連結的 token 或其他協定欄位代替。
- 轉送請求:驗證成功後,實際請求是否經由此節點傳送,還會受到 Global Routing、目前設定與策略選擇影響。
這四個階段是排除問題的順序,並非四個彼此獨立的開關。應先處理前一階段的問題,再判斷下一階段。延遲測試有結果,只能表示測試涵蓋的環節有回應,不能據此認定憑證、驗證及所有目標請求都正常。
Add Server:逐一填寫欄位
手動新增時,從 Home 右上角的「+」進入 Add Server,將 Type 設為 Trojan。不要因為連接埠同樣是 443 就選擇其他 Type;連接埠號碼無法用來判斷協定。以下步驟適用於已有完整 Trojan 參數的情況,欄位顯示請以 App 內目前介面為準。
-
前往新增頁面
開啟 Home → 右上角「+」→ Add Server,在 Type 中選擇 Trojan。若要編輯既有項目,請先記下原值,以免覆蓋仍可使用的設定。
-
填寫連線入口
將現有參數中的伺服器主機名稱填入 Address,並將連接埠號碼單獨填入 Port。例如 Address 為
edge.example.com,Port 為443;不要將兩者合併成同一個位址。 -
填寫驗證資料
將 Trojan 的 Password 完整複製到對應欄位,並檢查大小寫及前後空格。不要加上欄位名稱、引號或換行,也不要填入訂閱網址。
-
核對 TLS 設定
依現有參數填寫 SNI,並核對 Allow Insecure。若參數明確提供 SNI,請照原值填寫;不要自行填入常見網站的網域名稱。憑證設定正常時,Allow Insecure 應保持關閉。
-
儲存並測試
儲存後返回 Home,選取剛新增的項目,核對 Global Routing,再啟用連線。首次連線若出現系統 VPN 設定授權提示,請依系統指示確認,接著測試實際請求。
Address 僅填寫主機名稱或 IP 位址,不要加上 https://、路徑或查詢參數。Port 必須與現有伺服器參數一致:443 是常見範例,但 8443 等其他連接埠也可能用於 TLS 服務,請勿自行改成 443。若提供的參數包含傳輸層或其他進階選項,也必須逐項對應,不能只憑四個基本欄位推斷完整設定。
Password 與 SNI:用途不同,不可互換
Password 是 Trojan 的驗證憑證,SNI 則是 TLS 階段使用的伺服器名稱,兩者的格式與用途都不同。Trojan 的 Password 不要求使用 UUID 格式;即使某組憑證看起來像 UUID,也應視為完整密碼處理,不要依照 VMess 或 VLESS 的欄位習慣拆分或改寫。
連線與驗證範例
- Type
- Trojan
- Address
edge.example.com- Port
443- Password
DemoOnly-7qK9-p4
以上為示範值,並不對應可用服務;Password 請替換為使用者已有的完整憑證。
TLS 名稱範例
- SNI
tls.example.com- 憑證名稱
- 應涵蓋
tls.example.com - Allow Insecure
- 關閉
- 名稱格式
- 主機名稱,不含協定、路徑或連接埠
SNI 可以與 Address 不同,但必須符合現有伺服器部署與憑證設定,不可任意指定。
Address 回答「要連線到哪裡」,SNI 回答「TLS 交握時要要求哪個伺服器名稱」。同一個入口可能承載多個 TLS 服務,因此這兩個欄位不一定相同。但這不代表可以任意更換 SNI:伺服器必須能識別該名稱,回傳的憑證也應符合用戶端預期的名稱。
Address 使用 IP 位址時,尤其要核對伺服器提供的 SNI。只把網域名稱換成 IP,可能繞過原本的位址解析,卻同時改變預設使用的伺服器名稱,導致憑證驗證失敗。若現有參數未說明 SNI,不要自行猜測填入;應先確認伺服器憑證涵蓋的名稱,以及原設定中的 TLS 選項。
Allow Insecure:分清憑證驗證與加密
Allow Insecure 控制的是 TLS 憑證驗證行為,並非「是否啟用 TLS」。開啟後,連線仍可能使用 TLS 加密,但用戶端不會再以正常方式驗證伺服器憑證,因此無法確認對端身分。這也無法補正錯誤的 Address、連接埠或 Password,不應當成連線失敗時通用的修復方式。
Allow Insecure 關閉
建議設定保留憑證驗證。若憑證已過期、名稱不符或信任鏈有問題,應先檢查憑證與 SNI,而不是略過驗證。
適用情況:憑證有效且名稱相符的日常連線設定。
Allow Insecure 開啟
放寬憑證驗證,不能將 TLS 加密視為伺服器身分已獲確認。即使連線恢復,也只能表示憑證驗證環節值得檢查,不代表設定已正確。
適用情況:明確了解憑證問題時,進行受控的暫時診斷;不適合作為長期修復方案。
若關閉時連線失敗、開啟後成功,請重新關閉此選項,並檢查裝置的日期與時間、SNI 拼字、憑證有效期限,以及伺服器是否傳送完整憑證鏈。裝置時間明顯錯誤也可能影響憑證有效期限的判斷。長期處理應著重修正參數或伺服器憑證設定,而非一直略過驗證。
手動參數與訂閱:分別核對設定來源
手動新增與透過訂閱匯入的項目,都必須符合伺服器的實際參數;差別在於這些欄位由誰維護。若使用者已有訂閱,更新時可能會帶入伺服器調整後的位址、連接埠或憑證;手動新增的項目則需要自行同步變更。訂閱內容是否包含 SNI、傳輸層等欄位,應檢查匯入後的實際項目,不能只看顯示名稱判斷。
兩種參數來源的檢查方式
手動填寫
- 從 Home →「+」→ Add Server,選擇 Type 為 Trojan。
- 逐項核對 Address、Port、Password、SNI。
- 伺服器參數變更後,同步修改本機項目。
- 排除問題前先記錄原值,每次只修改一項。
已有訂閱
- 從 Home →「+」→ 在 Type 中選擇 Subscribe,填入自己的訂閱連結並儲存。
- 返回 Home 下拉重新整理,確認是否成功取得訂閱項目。
- 開啟目標項目,核對匯入的 Type 與 TLS 參數。
- 後續更新可能覆蓋本機修改,請保留必要的排除問題紀錄。
成功取得訂閱不代表 Trojan 連線成功;兩者須分別測試,本網站不提供訂閱內容。
另一種常見混淆,是把 Home 中的伺服器項目與 Config 中的分流設定視為同一回事。前者描述如何連線至代理入口,後者決定請求採用哪種策略。Global Routing 選擇 Config 時,請求會依目前啟用的設定處理;若符合 DIRECT 規則,即使選取了 Trojan 項目,該請求也不會經由它轉送。
- Proxy:用於暫時排除 Config 規則的影響;測試後請恢復原有路由設定,並確認目前實際選取的代理目標。
- Direct:請求採用直連方式;不能以此狀態下網頁能否開啟,證明 Trojan 參數有效。
- Config:依啟用中的設定與規則處理請求,並應一併檢查符合的規則及其對應策略目標。
例如,在 Config 模式下,DOMAIN-SUFFIX,example.com,DIRECT 會將該網域及其子網域交由 DIRECT 處理。此時應檢查符合的規則,而不是反覆修改 Trojan 的 Password。規則問題與協定連線問題應分開排查。
連線失敗:依現象縮小檢查範圍
先保留可重現的條件:記錄使用的網路、目前選取的項目、Global Routing、是否啟用 Allow Insecure,以及失敗發生在取得訂閱還是實際請求階段。接著每次只修改一個變數。以下列出的是條件判斷,並非針對特定服務的實測結論;具體錯誤訊息請以 App 內顯示為準。
一直逾時,是 Password 填錯了嗎?
不能只憑逾時就下結論。先返回 Home 編輯項目,核對 Address 和 Port,再使用同一組參數切換 Wi-Fi 與行動網路重新測試。若底層連線尚未建立,就還沒進入可判斷 Password 的驗證階段;不要同時修改連接埠、SNI 和密碼。
出現憑證錯誤時,應修改哪個欄位?
先核對裝置日期與時間,再檢查項目的 SNI 是否與現有參數一致,以及是否誤填了 https:// 或連接埠。若名稱正確但仍出錯,應檢查伺服器憑證有效期限與憑證鏈,不要把開啟 Allow Insecure 當成最終處理方式。
有延遲數值,為什麼網頁還是打不開?
延遲測試不代表完整的目標請求已成功。先確認 Home 選取的是目標 Trojan 項目,再查看 Global Routing 是否設為 Direct;若使用 Config,請檢查請求符合的策略。若要排除規則影響,可暫時使用 Proxy 測試,完成後恢復原設定。
剛修改好的參數,更新訂閱後又變了?
開啟更新後的項目,逐一比對 Address、Port、Password 和 SNI。訂閱更新可能會重新寫入來源中的欄位;應先確認訂閱提供的設定是否已修正,而不是在同一個項目上反覆進行未記錄的修改。
關閉連線後,為什麼又自動連上了?
前往 Settings → On Demand,檢查是否啟用了隨選連線,再確認系統中的 VPN 狀態。自動重新連線屬於連線觸發行為,不能證明 Trojan 驗證成功;排除問題時應保持觸發條件一致,避免誤把自動重新連線判斷為參數生效。
最終確認時應同時符合三項條件:目標項目的欄位與現有參數一致、TLS 憑證驗證通過,以及預期經由代理傳送的實際請求可以完成。若只有特定網站無法使用,還需要區分目標網站、DNS 與分流規則的問題;不要只因單一目標失敗就重設所有節點欄位。DNS 與連線觸發的說明,請分別參閱 DNS 設定與 On Demand 設定。