Shadowrocket Trojan 設定教學:密碼、SNI 與 TLS 憑證驗證

了解 Trojan 如何透過 TLS 傳輸,並逐項掌握在 Add Server 填寫位址、連接埠、密碼、SNI 與 Allow Insecure 的注意事項。

本文重點

本文適合已取得服務商提供的參數或訂閱,準備在 Shadowrocket 核對 Trojan 設定的使用者。先分清連線位址、驗證密碼與 TLS 身分驗證,再依 Home → Add Server 的順序填寫,最後按逾時、憑證錯誤與驗證失敗等狀況逐一排查。本網站不提供、不販售也不推薦任何節點或訂閱。

Trojan 連線中的 TLS 與密碼各自驗證什麼?

Shadowrocket(小火箭)中的 Trojan 類型用來連線至對應的 Trojan 伺服器。一般連線會先建立 TCP 連線,再進行 TLS 交握,接著透過加密通道傳送 Trojan 驗證資訊與目標請求。位址可解析、連接埠可連線,只代表前段網路條件具備,不表示憑證驗證與密碼驗證都已通過。

TLS 負責加密傳輸並驗證伺服器身分;Trojan 密碼則用於伺服器驗證用戶端。兩者不能互相取代:密碼正確無法修正憑證名稱不符,憑證有效也無法讓錯誤密碼通過驗證。排查時應分別記錄「無法連線至連接埠」、「TLS 交握失敗」與「交握後請求失敗」。

443
常見 TLS 伺服器連接埠,實際連接埠請以既有參數為準
TCP
本文說明的基本 Trojan 傳輸連線
3 項
分別確認憑證名稱、有效期限與信任鏈

結論:先判斷故障發生在哪個階段

連線逾時時先確認位址與連接埠;出現憑證錯誤時先確認 SNI、憑證與裝置時間。不要把更改密碼或開啟 Allow Insecure 當成所有故障的通用解法。

依序在 Add Server 填寫 Trojan 參數

手動新增伺服器時,請從 Home 進入,而不是在 Config 編輯規則檔。Config 用來管理設定檔與規則;本節要填寫的是伺服器連線參數。開始前先保留既有參數原文,並確認服務商提供的類型確實是 Trojan,不要只因連接埠為 443 就自行判定協定。

  1. 開啟新增頁面

    在 Home 點選右上角的「+」進入 Add Server。開啟 Type,選擇 Trojan,再返回參數頁面。若要編輯由訂閱產生的項目,請先記下原有值,避免之後更新訂閱時無法比對差異。

  2. 填寫連線位址

    在 Address 輸入既有參數提供的網域或 IP,在 Port 輸入對應的連接埠。Address 不包含 https://、路徑或連接埠後綴;例如,網域與 443 應分別填入兩個欄位。

  3. 確認驗證密碼

    在 Password 填入 Trojan 專用密碼,不要使用 App Store 帳號密碼,也不要預設使用服務商網站的登入密碼。確認大小寫、前後空格與換行;手動輸入時應使用原始密碼,不要直接把分享連結中的百分比編碼形式當成密碼。

  4. 確認 TLS 設定

    依照既有參數填寫 SNI,並確認 Allow Insecure 已關閉。若設定包含其他傳輸選項,也應逐項保持一致;不能只複製位址和密碼而忽略其他欄位。

  5. 儲存並驗證

    點選 Done 儲存,返回 Home 並選取該項目。首次啟用連線時,請依系統提示授權 VPN 設定,再實際測試請求。成功儲存只代表參數已寫入,不代表伺服器已接受連線。

Address、SNI 與憑證名稱的對應關係

Address 決定網路連線要前往的目的地;SNI 是 TLS 交握中的伺服器名稱提示,讓同一台伺服器上的不同網站選用相應憑證。SNI 不是網頁網址,不包含通訊協定、連接埠或路徑,也不能隨意選一個可連線的網域就生效。SNI 值應依實際伺服器設定決定。

伺服器傳回憑證後,用戶端仍須驗證伺服器身分。預期的伺服器名稱必須符合憑證允許的名稱,通常需要檢查憑證的 Subject Alternative Name。將 SNI 改成另一個網域不會改變憑證內容,也不會自動將網路請求導向該網域所對應的伺服器。

欄位 範例或設定值 確認重點
Type Trojan 必須與伺服器實際使用的協定一致
Address edge.example.com 只填連線網域,不包含 URL 路徑
Port 443 範例值,並非協定指定的連接埠
Password 自己的 Trojan 驗證密碼 保留原始字元,不要加上空格
SNI tls.example.com 僅用來示範位址與名稱可以不同;實際值由伺服器提供
Allow Insecure 關閉 維持正常的憑證驗證

上表中的網域僅用來說明欄位之間的關係,不能作為可連線的設定。Address 使用 IP 時,尤其要確認既有參數是否指定 SNI:若憑證只涵蓋某個網域,而用戶端以 IP 驗證身分,就可能出現名稱不符。反之,即使 SNI 填寫正確仍然報錯,也要檢查憑證是否過期、伺服器是否傳回錯誤憑證,以及中間憑證鏈是否完整。

Allow Insecure 的作用與是否保留驗證

Allow Insecure 不是用來「提升相容性」的一般效能選項。開啟後會放寬 TLS 憑證驗證,無法再依靠正常驗證確認連線對象的身分。這不會修復 DNS、錯誤的連接埠、密碼或伺服器停機,也不應成為日常遇到連線問題時的第一個調整項目。

關閉 Allow Insecure

建議

保留憑證驗證。遇到憑證錯誤時,請修正 SNI、裝置時間、憑證有效期限或伺服器憑證鏈,讓連線通過正常驗證。

適用情況:日常使用,以及伺服器採用受信任憑證的既有設定

開啟 Allow Insecure

放寬憑證驗證,降低確認伺服器身分的能力。即使開啟後請求成功,也只能表示憑證驗證可能是先前受阻的環節,不能據此判定設定安全或問題已修復。

適用情況:了解風險的維護人員在受控環境中短暫排查;不適用於日常設定

結論:以修復憑證作為完成條件

如果只有開啟 Allow Insecure 才能連線,請伺服器維護人員確認實際傳回的憑證、名稱涵蓋範圍與憑證鏈。修復完成後,請關閉此選項並重新驗證請求。

依症狀排查:逾時、憑證錯誤與驗證失敗

每次只調整一個變數,並記錄網路環境、所選項目、Global Routing 狀態與錯誤內容。延遲測試有回應,不代表完整的 Trojan 請求已通過驗證;還應測試一個已知可連線的目標,並分辨是所有目標都失敗,還是只有部分目標失敗。

填寫後一直逾時,是密碼錯了嗎?

不一定。先在 Home 重新開啟該項目,確認 Address 與 Port,並確認伺服器確實在該連接埠監聽。若 Address 是網域,也要檢查目前的網路能否解析該網域。先確認基本連線可達,再檢查 TLS 與密碼,不要一次更換多個欄位。

顯示憑證名稱不符,該修改哪裡?

先確認 SNI 與服務商提供的名稱逐字相符,並移除 https://、路徑及結尾空格。若兩者一致,請維護人員確認伺服器實際傳回的憑證名稱;同一個位址承載多個 TLS 網站時,錯誤的 SNI 可能會取得其他網站的憑證。

憑證仍在有效期限內,為什麼驗證還是失敗?

有效期限正常只是其中一項條件。先前往系統 Settings → General → Date & Time 確認裝置時間,再請維護人員檢查中間憑證鏈與信任來源。名稱不符、憑證鏈不完整或裝置時間錯誤,都無法只靠更換密碼解決。

建立連線後立即中斷,如何確認密碼?

開啟該項目的 Password,重新從可信的原始參數複製,並確認大小寫、換行與前後空格。若先前曾從分享連結手動拆分欄位,請確認沒有直接填入編碼字元。單憑中斷情況無法判定密碼錯誤,還需由維護人員根據伺服器記錄確認驗證結果。

選了 Trojan 項目,為什麼請求仍走直連?

先查看 Home → Global Routing。Direct 代表直連;Config 依目前的設定規則決定策略;Proxy 會將請求交由代理策略處理;Scene 則依設定的情境而定。選取某個項目並不會覆蓋目前的路由設定,也要確認請求實際套用的策略。

連線成功後,確認規則與自動連線狀態

Trojan 參數通過驗證後,再回到日常的分流設定。Global Routing 使用 Config 時,規則會依序比對;FINAL 是前面的規則都未符合時使用的預設規則,不代表所有請求都一定經由目前的 Trojan 項目。也應一併確認規則所指向的策略群組及其選擇。

若需要協助判斷故障發生的階段,可繼續參閱連線排查手冊;若對規則與策略名稱有疑問,請查看名詞解釋。更新訂閱後若再次出現相同問題,請先比較更新前後的位址、連接埠、SNI 與傳輸參數,不要先關閉憑證驗證。

App Store 下載指南先確認正版資訊