在 Shadowrocket(小火箭)的 Home 新增自己已有的 Trojan 參數時,先確認連線位址與連接埠,再核對 Password、SNI 和憑證驗證設定。本文以使用者已有服務商及設定資料為前提,說明手動填寫、匯入後檢查,以及排查握手失敗的順序;範例網域僅用於解釋欄位,並非可用連線。
Trojan 連線流程:先建立 TLS,再驗證 Password
在 Home → Add Server 將 Type 設為 Trojan 後,填入遠端服務的連線參數。一般 Trojan 連線會先連至 Address 指定的主機與 Port 指定的連接埠,再進行 TLS 握手,接著透過加密通道提交協定驗證資訊。Password 正確不代表憑證也正確;憑證有效也不代表帳號驗證一定成功,兩者應分開確認。
在現有參數中看到 443 時,別因此判定服務一定可用,也不要自動把其他連接埠改成這個數值。TLS 也能部署在其他連接埠;同樣地,能與某個連接埠建立 TCP 連線,只表示網路路徑及監聽服務可能可達,不能證明該連接埠提供相符的 Trojan 服務。
Add Server 欄位對照:Address、Port 和 Password 怎麼填
在 Home 點選右上角的新增按鈕,進入 Add Server,先將 Type 設為 Trojan,再依照現有參數逐項填寫。以下的 connect.example.com 和 tls.example.com 是保留用的範例網域;表格說明的是填寫格式,不是一組可供測試的服務參數。介面語言或表單版面不同時,SNI 可能位於 TLS 相關選項中,請依欄位用途確認。
| 欄位 | 填寫內容 | 確認重點 |
|---|---|---|
Type | Trojan | 必須與遠端服務類型一致。 |
Address | 現有服務的網域或 IP,例如 connect.example.com | 不要加上 https://、連接埠或網頁路徑。 |
Port | 服務商提供的數值,例如 443 | 與 Address 分開填寫,不能使用全形數字。 |
Password | 該 Trojan 服務的完整 Password | 區分大小寫,並檢查前後空格及複製時帶入的換行。 |
SNI | 現有設定指定的 TLS 主機名稱,例如 tls.example.com | 填寫主機名稱,不要填 URL、路徑或連接埠。 |
Allow Insecure | 一般使用時保持關閉 | 不要以略過憑證驗證來取代修正名稱、有效期限或憑證鏈。 |
將 Password 貼上後,應回到原始資料確認內容,不要只憑長度判斷。Trojan 的 Password 不是 App Store 購買憑證,也不是自行產生的 UUID。若資料中只有服務商網站的登入密碼,沒有明確的 Trojan 參數,請先取得相應的連線設定,切勿直接填入網站登入密碼。
在 Address 填入網域時,裝置必須先解析網域才能建立連線;填入 IP 則會直接連至該位址,但不會因此免除 TLS 名稱驗證。若服務使用網域憑證,而連線位址是 IP,通常仍需依照現有設定指定正確的 SNI,不能直接把 IP 當成憑證網域。
SNI 與憑證驗證:連線位址和驗證名稱可以不同
在 SNI 填入服務商指定的主機名稱後,TLS 握手會帶上該名稱,遠端可依此選擇相應的憑證或服務。Address 用來指定「連到哪裡」,SNI 則告知 TLS 服務預期連線的主機名稱;一般 TLS 設定也會使用該名稱核對憑證身分。兩個欄位相同很常見,但並非必要。
啟用憑證驗證
建議設定保持 Allow Insecure 關閉,使用正確的 SNI,並透過系統信任機制核對遠端憑證。若憑證已過期、名稱不符或不受信任,應修正設定或遠端憑證。
適用情況:日常連線與正式設定驗證
略過憑證驗證
啟用 Allow Insecure 會放寬憑證驗證,降低確認遠端身分的能力。這無法修正 Password、Port 或傳輸方式錯誤,也不能以連線成功作為設定正確的依據。
適用情況:了解現有設定的風險差異;不建議作為一般修復方式
結論:先修正 SNI,不要略過驗證
若憑證名稱不符,先逐項核對 SNI、現有設定及憑證涵蓋的網域;名稱正確但仍失敗時,再檢查裝置時間、憑證有效期限與伺服器憑證鏈。
SNI 留白時,不應假設任何連線位址都能通過驗證。預設名稱的選取方式視實際設定而定;若服務明確提供 SNI,請保留原值。若憑證只涵蓋 tls.example.com,將 SNI 改成其他網站的網域,並不會讓它自動取得相應的身分。
- 確認憑證名稱時,請區分完整網域與萬用字元的涵蓋範圍;萬用字元不會涵蓋任意層級的子網域。
- 確認裝置時間時,請檢查系統日期與時區是否正確;時間不準可能導致憑證有效期限判定失敗。
- 確認憑證鏈時,請確保遠端提供正確的中繼憑證;在本機反覆重新填寫 Password,無法補齊伺服器的憑證鏈。
手動新增與首次驗證:儲存後確認實際使用的節點
在 Home 完成 Add Server 後,先儲存,再選取剛新增的項目進行驗證。每次只修改一個可疑欄位並記錄結果,避免同時更改 Password、SNI 和 Port,導致無法判斷哪項變更有效。首次連線時依系統提示允許新增 VPN 設定,之後返回 Shadowrocket 確認連線狀態。
-
選擇類型
依序前往 Home → 右上角新增按鈕 → Add Server → Type,選擇 Trojan。先確認現有資料的協定類型,不要將其他協定的參數套用到這份表單。
-
填寫連線資料
將現有主機名稱填入 Address、服務連接埠填入 Port、完整密碼填入 Password。從位址移除 URL 協定前綴,並將連接埠另外填寫。
-
確認 TLS 設定
在 SNI 或相應的 TLS 主機名稱欄位填入現有值,並保持 Allow Insecure 關閉;若資料另有傳輸參數,也要一併確認相關設定。
-
儲存並選取
儲存後返回 Home,選取該 Trojan 項目,再檢查 Global Routing。排查期間可暫時選用 Proxy,減少規則對測試路徑的影響。
-
驗證後還原設定
進行一次一般連線,並確認連線記錄中的實際目標、使用的節點與錯誤階段。驗證完成後,還原原本的 Global Routing 設定及自動連線設定。
在 Global Routing 使用 Config 時,請求會依目前設定中的規則比對,可能由 DOMAIN-SUFFIX、GEOIP、IP-CIDR 或 FINAL 指向不同策略;頁面能開啟,不代表流量一定經過剛新增的 Trojan 項目。Direct 用於直連,不能以直連成功證明該項目可用。Scene 則應依實際場景確認設定,不能預設它等同於 Proxy。
如何排查握手失敗:依網路、TLS、驗證順序縮小範圍
在連線記錄中看到錯誤後,先判斷失敗發生於解析、連線還是 TLS 階段,再修改相應欄位。下表列出常見的可觀察現象,但單一提示不一定只對應一種原因;實際訊息也可能因系統及遠端回應而異。不要只憑延遲數值或一次逾時,就認定是 Password 錯誤。
| 觀察到的現象 | 優先確認項目 | 下一步 |
|---|---|---|
| 網域解析失敗,尚未連線至遠端 | Address 拼寫、目前網路的 DNS | 先確認主機名稱能否解析,不要更改 Password 或關閉憑證驗證。 |
| 連線逾時或遭拒 | Address、Port、遠端監聽狀態與網路路徑 | 對照現有連接埠,並改用另一個可用網路比較;避免連續更改 TLS 欄位。 |
| 顯示憑證名稱不符 | SNI 與憑證涵蓋的網域 | 恢復服務指定的主機名稱,並確認沒有加入協定前綴、路徑或多餘空格。 |
| 顯示憑證已過期或不受信任 | 裝置時間、憑證有效期限、憑證鏈 | 確認系統時間,並向自己的服務商回報憑證問題;保持驗證功能開啟。 |
| TLS 完成後連線立即中斷,或驗證未通過 | Password、Type、服務狀態與傳輸參數 | 重新核對原始參數;連線中斷本身不足以證明 Password 錯誤。 |
| 連線已建立,但指定網頁無法開啟 | 實際選取的節點、規則策略、目標 DNS 與遠端連線狀況 | 先查看該請求的實際路徑,再區分是規則問題還是目標網站問題。 |
回報故障時,提供錯誤發生階段、網路類型及已遮蔽敏感資訊的欄位差異即可。Password、完整分享連結及訂閱網址中的 token 都屬於敏感資訊,請勿連同截圖公開傳送。向自己的服務商確認時,具體描述憑證錯誤或連線中斷的情況,比只說「無法使用」更有助於排查。
匯入現有設定後:檢查覆寫情況與更新來源
在 Home 使用現有分享連結、QR Code 或訂閱匯入 Trojan 後,仍應開啟項目的編輯頁面,確認 Type、Address、Port、SNI 與 Allow Insecure。匯入可減少手動抄寫錯誤,但不代表遠端參數仍有效,也不保證連結包含所有額外傳輸設定。
- 先確認連結類型:
trojan://是單筆設定常見的分享協定前綴,不等於訂閱網址。訂閱通常會傳回一組項目,不能把訂閱 URL 填入 Address。 - 保留原始設定依據:手動修改前,記錄原設定中的非敏感欄位,確認要修改的是本機項目,還是由訂閱管理的項目。
- 更新後再次確認:重新整理訂閱可能會重建項目或覆蓋本機修改。若更新後問題再次出現,請檢查自己的訂閱來源內容,不要反覆修改同一個欄位。
- 分開管理不同用途:Home 用於選擇節點與連線,Config 用於管理設定檔及規則,Settings 用於調整應用程式設定;Trojan 驗證問題不應靠任意刪除分流規則處理。
如需進一步區分分流與連線問題,可接著閱讀連線問題排查說明與規則與策略說明。先確認單一項目的連線參數正確,再回到日常 Config 規則驗證目標請求,可避免將節點參數、DNS 與策略選擇混為一談。