本文適合已取得服務商提供的 Trojan 設定,並準備在 Shadowrocket(小火箭)中手動核對參數的使用者。依序檢查連線位址、連接埠、Password、SNI 與 TLS 驗證,可判斷問題是連線逾時、憑證錯誤還是驗證失敗。文中的 example.com 僅用來說明欄位格式,並非可用的連線位址;本站不提供、不販售,也不推薦節點或訂閱。
一、Trojan 連線中的 TLS 與 Password 各自負責什麼
Trojan 使用 TLS 保護用戶端與伺服器之間的通訊,並在加密連線中進行協定驗證。填寫時要分清兩件事:TLS 用來確認所連線伺服器的身分,Password 則供伺服器驗證連線請求是否獲准。Password 正確無法彌補憑證身分不符;關閉憑證驗證也無法修正錯誤的 Password。
一次連線通常依序經過網域名稱解析、建立 TCP 連線、TLS 交握,再進入 Trojan 驗證與目標連線。前一階段失敗,後續階段就無法完成。因此,發生逾時時先檢查位址與連接埠;出現明確的憑證錯誤時,先檢查 SNI、憑證與系統時間,不要反覆重填 Password。
結論:依照失敗階段修改對應欄位
連接埠無法連線時,先核對 Address 與 Port;憑證驗證失敗時,檢查 SNI 與系統時間。不要一次更動多個欄位,否則即使連線成功,也無法確認原本是哪個欄位出錯。
二、從 Home → Add Server 新增 Trojan
手動填寫前,先備妥原始設定中的伺服器位址、連接埠、Password、憑證所對應的網域,以及伺服器明確要求的傳輸參數。若已有訂閱匯入的紀錄,優先參照該紀錄核對;不要只憑節點名稱中的地區或協定縮寫推測參數。
-
開啟新增頁面
進入 Home,點選右上角的「+」開啟 Add Server。新增一筆方便辨識的測試紀錄,並保留既有設定,避免排除問題時遺失原始參數。
-
選擇協定
進入 Type,選擇 Trojan,再返回 Add Server。協定類型必須與伺服器設定一致,不能將其他協定的 Password 或識別資訊直接填入 Trojan。
-
填寫連線入口
依照原始設定填寫 Address 與 Port。Address 只填主機名稱或 IP,Port 則單獨填入數字;不要將整條分享連結貼到 Address。
-
核對驗證資訊
填寫 Password 與 SNI,並保持 TLS 憑證驗證啟用。若設定另有指定傳輸方式或其他 TLS 參數,請依原始說明逐項核對,不要自行猜填。
-
儲存並測試
儲存後返回 Home,選取剛建立的紀錄並連線。先確認該紀錄能否建立連線,再檢查 Global Routing 對實際連線的影響。
Home 主要用來選擇連線紀錄與控制連線;Config 用來管理規則設定;Settings 則用來調整應用程式設定。修改 Config 中的分流規則,不會自動修正 Home 內紀錄的錯誤 Password;這兩處問題應分別驗證。
三、Address、Port 與 Password 的填寫原則
Address 決定連線入口。使用網域名稱時,必須先完成 DNS 解析;使用 IP 時,則直接以該位址建立連線。Port 決定要連線至該入口上的哪個服務;即使位址正確,連接埠填錯仍可能逾時、遭拒絕連線,或連到非 Trojan 服務。
| 欄位 | 填寫方式 | 常見錯誤 |
|---|---|---|
| Type | 選擇 Trojan | 只看名稱就猜測協定,未核對原始設定。 |
| Address | 填寫主機名稱,例如 edge.example.com,或原始設定指定的 IP。 | 多填了 https://、路徑或空格,或連接埠也一起貼上。 |
| Port | 填入伺服器指定的數字,例如 443。 | 把常見連接埠當成預設值,覆蓋原始設定中的其他連接埠。 |
| Password | 逐字複製原始 Password,保留大小寫與符號。 | 誤填帳戶登入密碼、漏掉最後一個字元,或多帶換行。 |
| SNI | 填寫設定指定的 TLS 伺服器名稱,例如 tls.example.com。 | 填成完整 URL、附加連接埠,或使用與憑證無關的網域。 |
Password 不需要自行轉換
Password 是伺服器設定的驗證密鑰,不是任意編寫的備註,也不必符合某種固定格式。手動填寫時,請使用服務商提供的原始 Password,不要自行計算摘要或再次編碼。若只有分享連結,請使用應用程式支援的匯入方式讀取欄位,不要從連結截取一段後自行猜填。
- 複製後檢查開頭與結尾,特別留意換行、空格及容易混淆的字元。
- Password 含有特殊符號時,請分清連結中的跳脫表示與實際欄位值,別將兩者混為一談。
- 請勿在截圖、回報文字或公開記錄中保留完整 Password、訂閱權杖等敏感資訊。
四、SNI 與憑證:連線入口可以不同,伺服器身分必須可驗證
SNI 是 TLS 的 Server Name Indication 擴充功能,用戶端會在交握時透過它告知伺服器希望連線的名稱。單一入口可以承載多個 TLS 網站,伺服器會據此選擇對應的憑證或處理路徑。因此,在某些設定中 Address 與 SNI 相同,在另一些設定中則可能不同;不要只因兩個欄位不一致,就擅自改成相同值。
例如,原始設定將某個 IP 指定為 Address,同時將 tls.example.com 指定為 SNI,表示要連線至該 IP,並在 TLS 交握時使用指定名稱。此網域必須符合伺服器設定,憑證也必須能通過相應的名稱與信任鏈驗證。任意換成常見網站的網域,不會讓憑證自動變成有效憑證。
- 格式:SNI 填寫主機名稱,不要加上
https://、:443或/path。 - 名稱:確認憑證的 Subject Alternative Name 是否涵蓋預期的服務名稱;不要只看憑證上顯示的組織名稱。
- 時間:在 iPhone 的「設定 → 一般 → 日期與時間」確認時間是否正確;日期錯誤可能導致憑證被判定為尚未生效或已過期。
- 空值:原始設定未填 SNI 時,先確認伺服器預期的名稱及應用程式如何處理空值,不要試填無關網域。
SNI 本身不是 Password,也無法單獨證明伺服器可信。在傳統 TLS 中,SNI 通常不具備獨立的保密性;填入 SNI 不代表多了一層身分驗證。TLS 的身分保障取決於完整的憑證驗證;若伺服器憑證已過期或憑證鏈不完整,應由伺服器端修正。
五、TLS 與 Allow Insecure:保留驗證,不要用開關掩蓋錯誤
Trojan 的基本設計依賴 TLS。填寫時不要把 TLS 當成提升速度的附加選項,也不要為了嘗試連線而將它關閉。若介面提供 TLS 版本、ALPN 或傳輸方式等選項,請先保留預設值,只有原始設定明確要求時才調整。用戶端與伺服器必須支援共同的參數;填得越多不一定越相容。
Allow Insecure 常被理解為「允許不安全」,實際上是放寬伺服器憑證驗證,並非啟用某種相容協定。略過憑證檢查後,即使流量仍經過加密,用戶端確認伺服器身分的能力也會降低。這項設定無法解決位址錯誤、連接埠遭封鎖或 Password 錯誤。
關閉 Allow Insecure
建議設定保留正常的憑證驗證。連線失敗時,依序檢查憑證名稱、有效期限、信任鏈與系統時間,修正後再測試。
適用情境:日常連線,以及使用有效憑證的 Trojan 設定。
開啟 Allow Insecure
放寬憑證驗證會降低伺服器身分驗證的強度。若現有設定已啟用此選項,應先確認原因並取得可正常驗證的設定,不要把這個狀態當成通用的修復方式。
適用情境:辨識既有設定的安全狀態;不建議用於日常故障排除。
若伺服器另外使用 WebSocket 等傳輸封裝,也需核對其對應參數。WebSocket 的 Host、Path 與 TLS 的 SNI 屬於不同層,不應一律複製成相同值。本文介紹的基本欄位,不能取代伺服器對這些額外參數的明確說明。
六、依錯誤現象排除問題,勿將延遲數值視為完整驗證
延遲測試結果只反映該測試方式能否收到回應。TCP 層成功建立連線,不代表 Trojan Password 已通過驗證;測試顯示延遲數值,也不代表一定能連上目標網站。排除問題時,記錄測試方式、網路環境、錯誤訊息與發生階段,再逐一修改欄位。
一直逾時,是不是 Password 錯了?
不一定。先返回 Home 開啟該紀錄,逐項核對 Address 與 Port,再分別使用 Wi-Fi 和行動網路測試。如果兩種網路都無法建立底層連線,應優先確認連線入口是否可達及伺服器狀態;不要只憑 timeout 判定 Password 錯誤。
提示憑證名稱不符,該修改哪個欄位?
核對 Add Server 中的 SNI 是否與原始設定一致,並確認沒有誤加協定標頭或連接埠。接著確認伺服器憑證涵蓋該名稱;若憑證本身不符,應請自己的服務商修正,而不是開啟 Allow Insecure。
延遲有數值,為什麼網頁還是打不開?
先確認 Home 選取的是待測紀錄。接著檢查 Global Routing:Direct 不會用來驗證代理連線;可暫時選擇 Proxy 進行比對,測試後再恢復原設定。若 Proxy 可用但 Config 不可用,接著檢查 Config 中的規則與策略選擇。
更新訂閱後,手動修改的參數又變了?
訂閱更新可能依照遠端內容重建紀錄。重新核對更新後的 Address、Port、SNI 與 Password;需要比較測試時,另建一筆手動紀錄,不要把暫時修改當成長期修正。正確參數應同步更新至既有訂閱的資料來源。
若底層連線與 TLS 都通過,之後卻出現驗證失敗或立即中斷,請再檢查 Password、伺服器帳戶狀態及傳輸方式是否一致。實際錯誤訊息會依伺服器實作而異,不能只憑「中斷」兩字就認定 Password 已失效。回報問題時請保留錯誤描述,並隱去 Password、訂閱連結、完整連線入口及其他可識別資訊。
七、儲存前後的最後核對清單
完成參數核對後,先測試一筆連線,再恢復正常的分流設定。Global Routing 中的 Proxy、Direct、Config、Scene 是不同的路由模式,並非不同的 Trojan 加密方式;切換模式不會改變紀錄中的 SNI 或 Password。使用 Scene 時也要確認目前場景的實際設定,避免把切換場景造成的變化誤認為協定故障。
- 入口一致:Address 不含額外前綴或路徑,Port 與原始設定完全一致。
- 驗證一致:Password 未重新編碼,也未混入空格或換行。
- TLS 可驗證:SNI 來源明確,憑證名稱與有效期限正常,並保持 Allow Insecure 關閉。
- 選取正確紀錄:Home 目前選取的是剛測試的紀錄,而非名稱相似的其他紀錄。
- 恢復規則設定:臨時測試後恢復 Global Routing;使用 Config 時,核對實際套用的策略。
- 訂閱可持續維護:若參數來自既有訂閱,確認下次更新後仍會取得正確設定。
Shadowrocket 是 Apple 平台上的閉源商業應用程式,主要供 iPhone、iPad 使用,唯一取得管道為 App Store,採一次性買斷。用戶端買斷 ≠ 連線服務方案;購買應用程式不包含連線服務。系統需求與是否支援通用購買,請以 App Store 頁面標示為準。準備安裝時,請先透過正版核對頁確認開發者 Shadow Launch Technology Limited、官方圖示及應用程式 ID 932747118。