Shadowrocket Trojan 設定教學:Add Server 參數與 SNI 填寫指南

Shadowrocket Trojan 設定教學:說明 TLS 原理,以及在 Add Server 填寫 Address、Port、Password、SNI 和 Allow Insecure 時的常見錯誤。

本文重點

本文適合在 iPhone、iPad 上使用 Shadowrocket(小火箭),且已有自己的服務供應商與 Trojan 設定的使用者。新增時請依原始資料填寫 Address、Port、Password 和 SNI,並保持憑證驗證開啟;若無法連線,請依序檢查地址解析、連接埠、TLS、驗證與規則分流,不要用開啟 Allow Insecure 取代故障排除。其他平台可參考各參數的用途,介面位置則以實際用戶端為準。

1. Trojan 與 TLS:連線會經過哪些步驟

Trojan 是代理協定,TLS 則為用戶端與伺服器之間的傳輸提供加密及伺服器身分驗證。常見的 Trojan 連線會先建立 TCP 連線,再完成 TLS 交握,接著在加密通道內傳送驗證資訊與目標地址。TLS 交握成功只代表安全通道已建立,不表示密碼正確,也不代表一定能連上目標網站。

伺服器解析 TCP 連線 TLS 交握 Trojan 驗證 轉送至目標

這裡的 TLS 並不表示代理伺服器會替使用者解密所有 HTTPS 網頁。瀏覽 HTTPS 網站時,瀏覽器通常也會與目標網站建立自己的 TLS 連線;Trojan 的 TLS 則是裝置到代理伺服器之間的外層通道。兩層連線涉及不同的憑證與故障位置,不應混淆伺服器憑證錯誤和特定網站的憑證錯誤。

常見設定會使用 TCP 443 連接埠,但 443 並非協定規定的固定值。若伺服器監聽其他連接埠,用戶端就必須依資料填寫。Trojan 也不等於 QUIC;不要因設定提到 UDP 轉送,就自行改用 Hysteria2 傳輸方式,或認定所有遊戲、語音應用程式都會有相同的連線表現。

443
常見 TLS 連接埠;實際值依伺服器設定而定
5 項
確認 Address、Port、Password、SNI、Allow Insecure
2 層
使用 HTTPS 時,區分代理 TLS 與網站 TLS

2. Add Server:新增前準備與設定步驟

先備妥自己現有設定中的伺服器地址、監聽連接埠、密碼及 TLS 名稱要求。若資料只有訂閱,建議優先匯入既有訂閱,避免依名稱或截圖猜測參數;手動新增的記錄與訂閱記錄可能有不同的更新方式,修改前先確認目前編輯的是哪一筆。

  1. 前往新增頁面。在 Home 點選右上角的新增按鈕,進入 Add Server,並將 Type 設為 Trojan。請勿將 Trojan 密碼填入其他協定的 UUID 或身分欄位。
  2. 填寫 Address。只輸入主機名稱或 IP 地址,例如 example.com。不要加入 https://、網頁路徑或訂閱查詢參數。本文中的網域僅用於說明格式,並非可用服務。
  3. 填寫 Port。輸入原始資料中的數字,例如伺服器明確使用 443 時,填入 443。不要因為瀏覽器能開啟該網域,就認定代理服務一定監聽 443。
  4. 填寫 Password。請確保字元、大小寫及符號完全一致,並檢查複製時是否多帶空格或換行。Password 不是訂閱地址中的整段查詢字串,也不能用登入服務供應商網站的密碼取代。
  5. 確認 TLS 參數。依資料設定 SNI;若介面顯示 TLS 開關,Trojan 的一般 TLS 設定應保持啟用。Allow Insecure 請維持關閉,也不要自行加入資料中未提供的傳輸擴充參數。
  6. 儲存並選取。儲存後回到 Home,選取剛新增的記錄,再進行連線測試。首次建立系統 VPN 設定時,請依系統提示授予權限;系統權限與伺服器驗證是兩個獨立步驟。

3. Address、SNI 與憑證名稱的對應方式

Address 決定用戶端實際連線的網路地址;SNI 是 TLS 交握時傳送的伺服器名稱,常用於讓同一地址上的服務選擇相應憑證。兩者通常相同,但不一定相同。填寫 SNI 不會將流量改送到另一個網路地址,也無法修正錯誤的 Address。

連線地址參數

Type
Trojan
Address
example.com,僅供格式示意
Port
443,僅在伺服器確實監聽時使用
Password
逐字填入使用者現有設定中的密碼

地址用來定位伺服器,連接埠用來定位其監聽服務。

TLS 身分參數

SNI
使用原始資料指定的網域
憑證名稱
應符合用戶端驗證的伺服器名稱
Allow Insecure
關閉,保留憑證驗證
裝置時間
確認日期、時間與時區設定正確

SNI 會影響交握與名稱選擇,不會取代憑證信任驗證。

若 Address 使用 IP 地址,而憑證是簽發給網域,通常必須依設定提供正確的 SNI,不要把該 IP 地址直接複製到 SNI。憑證也必須在有效期限內,並能建立可信任的憑證鏈;網域拼寫正確,不代表這些檢查都會通過。若資料未說明名稱要求,請向原設定提供者確認,不要隨意嘗試無關網域。

Allow Insecure 用於放寬憑證驗證,並非「適用更多網路」的通用選項。開啟後,錯誤憑證可能不再阻擋連線,但也會削弱伺服器身分驗證。遇到憑證問題時,請檢查 SNI、裝置時間、憑證有效期限及伺服器端憑證鏈;若環境需要特定信任設定,請依照該環境的憑證部署說明處理,不要長期關閉驗證。

4. 儲存後測試:區分協定故障與規則未命中

新增成功只表示記錄已儲存。回到 Home 後,先確認選取的是剛新增的 Trojan 記錄,再執行 Connectivity Test。測試結果會受測試目標、網路路徑與測試方式影響;即使測出延遲,也不代表所有網站、UDP 應用程式或規則策略都已驗證。

  1. 確認連線狀態。開啟 Home 的連線開關,觀察是否立即中斷。若應用程式尚未建立系統 VPN 連線,請先處理權限或本機設定問題,不要急著修改遠端連接埠。
  2. 暫時排除分流變數。在允許的網路使用範圍內,將 Global Routing 暫時切換為 Proxy,使用目前選取的記錄連線至明確的測試目標。Proxy 可用來排除大部分規則選擇的影響,但無法修正 TLS 或密碼錯誤。
  3. 切回 Config。確認該記錄可用後,將 Global Routing 切回 Config,並檢查 Config 中實際啟用的設定。Direct 不適合用來驗證 Trojan 轉送,因為請求可能根本沒有經過代理。
  4. 確認自動連線設定。排除問題期間,請檢查 Settings → On Demand,避免自動連線條件改變目前的測試狀態。完成後恢復原有設定;On Demand 管理連線觸發條件,不會修正 Password 或 SNI。

以下是用來說明比對順序的實際規則語法,不包含任何可用伺服器。它會將 example.com 及其子網域交由 PROXY 處理,文件保留地址範圍則採用直連,其他請求也交由 PROXY 處理。請只將規則合併至既有設定的 [Rule] 區段,不要用這段內容覆寫整份設定檔。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
FINAL,PROXY

規則會由上而下檢查,符合第一條規則後就不再檢查後續規則,最後由 FINAL 作為預設處理。此處的 PROXY 是策略標記,不是伺服器地址,也不是填入 Trojan 密碼的欄位。請確認目前策略最後選取的是待測記錄;若 Proxy 可連線、Config 卻不行,應優先檢查規則比對、策略選擇與 DNS,不要立刻重填相同的伺服器參數。

5. 依故障階段排查逾時與驗證失敗

請依問題發生的階段縮小排查範圍。用戶端顯示的訊息可能只是概括性錯誤,不能單憑「逾時」就判定密碼錯誤。每次只調整一個變數,並記錄修改前後的狀況;在 Wi-Fi 與行動網路之間切換測試時,也要使用同一筆記錄和同一個目標,避免同時改變太多條件。

觀察到的狀況優先檢查項目下一步處理方式
Address 無法解析網域拼寫、目前網路的 DNS確認是否誤填 URL,並檢查主機名稱是否與原始資料一致。
連線逾時或遭拒Port、網路連通性、伺服器監聽狀態確認連接埠;改用另一個網路,以同一筆記錄重新測試,並確認伺服器端狀態。
TLS 或憑證錯誤SNI、裝置時間、憑證鏈保持 Allow Insecure 關閉,並確認名稱及憑證部署設定。
交握後中斷或驗證失敗Password、Type、伺服器端驗證設定重新複製密碼並檢查是否有多餘空白,確認 Type 選的是 Trojan。
Proxy 可用,但 Config 無法連線規則、策略與 DNS確認啟用中的 Config,以及請求實際命中的策略。
只有部分應用程式連線失敗目標服務、UDP 轉送、應用程式本身的網路行為分別測試網頁與該應用程式,不要因網頁測試成功就認定所有流量都正常。

伺服器地址能在瀏覽器開啟 HTTPS 頁面,也無法證明 Trojan 密碼及轉送設定正確。瀏覽器瀏覽與 Trojan 驗證是不同的請求;同樣地,某個測試目標無法連線,也不一定表示整台伺服器都不可用。請綜合錯誤階段與多次受控測試結果判斷,本文不提供速度或可用性的實測保證。

6. 常見設定問題

地址中有 https://,可以整段貼上嗎?

不要將網頁或訂閱 URL 整段填入 Address。請先從原始設定確認真正的伺服器主機名稱,Address 只填主機名稱或 IP,Port 則另外填寫。訂閱地址應依訂閱匯入流程處理,不能只刪除 URL 前綴,就把它當成 Trojan 伺服器地址。

SNI 留白也能連線,還需要填嗎?

部分設定會根據 Address 使用預設名稱,但不能因此認定所有伺服器都能留白。若原始資料明確提供 SNI,請填入該值;尤其 Address 使用 IP,或名稱與憑證網域不同時,更應保留資料指定的名稱。

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

不應將它當作長期解決方式。這表示問題可能出在憑證驗證環節;請重新關閉該選項,並檢查 SNI、時間及憑證鏈。將具體憑證錯誤交由原設定提供者處理,不要用跳過驗證來掩蓋名稱錯誤。

訂閱更新後無法連線,需要重新新增嗎?

先比對更新前後的 Address、Port、SNI 與選取的記錄,並確認 Home 目前選取的不是同名舊記錄。若設定確實有變更,請以使用者現有的最新資料為準。手動修改訂閱產生的記錄前,先保留原始值,避免下次更新覆蓋後無法判斷原因。

Shadowrocket 全平台下載