本文適合在 iPhone、iPad 上使用 Shadowrocket(小火箭),且已有自己的服務供應商與 Trojan 設定的使用者。新增時請依原始資料填寫 Address、Port、Password 和 SNI,並保持憑證驗證開啟;若無法連線,請依序檢查地址解析、連接埠、TLS、驗證與規則分流,不要用開啟 Allow Insecure 取代故障排除。其他平台可參考各參數的用途,介面位置則以實際用戶端為準。
1. Trojan 與 TLS:連線會經過哪些步驟
Trojan 是代理協定,TLS 則為用戶端與伺服器之間的傳輸提供加密及伺服器身分驗證。常見的 Trojan 連線會先建立 TCP 連線,再完成 TLS 交握,接著在加密通道內傳送驗證資訊與目標地址。TLS 交握成功只代表安全通道已建立,不表示密碼正確,也不代表一定能連上目標網站。
這裡的 TLS 並不表示代理伺服器會替使用者解密所有 HTTPS 網頁。瀏覽 HTTPS 網站時,瀏覽器通常也會與目標網站建立自己的 TLS 連線;Trojan 的 TLS 則是裝置到代理伺服器之間的外層通道。兩層連線涉及不同的憑證與故障位置,不應混淆伺服器憑證錯誤和特定網站的憑證錯誤。
常見設定會使用 TCP 443 連接埠,但 443 並非協定規定的固定值。若伺服器監聽其他連接埠,用戶端就必須依資料填寫。Trojan 也不等於 QUIC;不要因設定提到 UDP 轉送,就自行改用 Hysteria2 傳輸方式,或認定所有遊戲、語音應用程式都會有相同的連線表現。
2. Add Server:新增前準備與設定步驟
先備妥自己現有設定中的伺服器地址、監聽連接埠、密碼及 TLS 名稱要求。若資料只有訂閱,建議優先匯入既有訂閱,避免依名稱或截圖猜測參數;手動新增的記錄與訂閱記錄可能有不同的更新方式,修改前先確認目前編輯的是哪一筆。
- 前往新增頁面。在 Home 點選右上角的新增按鈕,進入 Add Server,並將 Type 設為 Trojan。請勿將 Trojan 密碼填入其他協定的 UUID 或身分欄位。
- 填寫 Address。只輸入主機名稱或 IP 地址,例如
example.com。不要加入https://、網頁路徑或訂閱查詢參數。本文中的網域僅用於說明格式,並非可用服務。 - 填寫 Port。輸入原始資料中的數字,例如伺服器明確使用 443 時,填入
443。不要因為瀏覽器能開啟該網域,就認定代理服務一定監聽 443。 - 填寫 Password。請確保字元、大小寫及符號完全一致,並檢查複製時是否多帶空格或換行。Password 不是訂閱地址中的整段查詢字串,也不能用登入服務供應商網站的密碼取代。
- 確認 TLS 參數。依資料設定 SNI;若介面顯示 TLS 開關,Trojan 的一般 TLS 設定應保持啟用。Allow Insecure 請維持關閉,也不要自行加入資料中未提供的傳輸擴充參數。
- 儲存並選取。儲存後回到 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 應用程式或規則策略都已驗證。
- 確認連線狀態。開啟 Home 的連線開關,觀察是否立即中斷。若應用程式尚未建立系統 VPN 連線,請先處理權限或本機設定問題,不要急著修改遠端連接埠。
- 暫時排除分流變數。在允許的網路使用範圍內,將 Global Routing 暫時切換為 Proxy,使用目前選取的記錄連線至明確的測試目標。Proxy 可用來排除大部分規則選擇的影響,但無法修正 TLS 或密碼錯誤。
- 切回 Config。確認該記錄可用後,將 Global Routing 切回 Config,並檢查 Config 中實際啟用的設定。Direct 不適合用來驗證 Trojan 轉送,因為請求可能根本沒有經過代理。
- 確認自動連線設定。排除問題期間,請檢查 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 目前選取的不是同名舊記錄。若設定確實有變更,請以使用者現有的最新資料為準。手動修改訂閱產生的記錄前,先保留原始值,避免下次更新覆蓋後無法判斷原因。