Shadowrocket(小火箭)可新增多種協定,但協定類型必須與使用者已有的伺服器端設定一致,不能透過更改 Type 將一種節點轉換成另一種。本文適合已有服務商與訂閱的使用者,先釐清協定、傳輸與路由的差異,再逐一核對八種常見類型的參數,最後說明匯入、測試與故障排查的順序。
一、支援的協定與參數速查
Shadowrocket 的協定選擇位置在 Home → 右上角「+」→ Type。下表列出本文介紹的八種類型,不代表應用程式支援的全部選項;實際欄位請以目前應用程式的新增頁面為準。選擇協定時,應依據已有的連線資料,而非協定名稱來判斷連線速度。
| 協定 | 傳輸特性 | 優先核對的參數 |
|---|---|---|
| Shadowsocks | 使用指定的加密方法保護代理資料,可透過 TCP 與 UDP 轉發 | 位址、連接埠、加密方法、密碼;若有外掛程式,另須核對外掛程式設定 |
| VMess | 使用 UUID 等資訊進行驗證,可搭配不同傳輸方式 | 位址、連接埠、UUID、加密選項、傳輸方式、TLS |
| VLESS | 驗證與外層傳輸分開處理,本身不提供資料加密 | 位址、連接埠、UUID、傳輸方式及相應的安全參數 |
| Trojan | 常見部署方式採用 TLS,並以密碼驗證 | 位址、連接埠、密碼、SNI、憑證驗證 |
| HTTP | 使用 HTTP 代理;連線至 HTTPS 目標時,通常透過 CONNECT 建立通道 | 位址、連接埠、選填的使用者名稱與密碼、代理連線的 TLS 設定 |
| SOCKS5 | 通用代理協定,可使用 TCP 與 UDP,但兩端都必須支援 | 位址、連接埠、選填的使用者名稱與密碼、UDP 是否可用 |
| Hysteria2 | 以 QUIC 為基礎,底層使用 UDP | 位址、連接埠、驗證參數、SNI、憑證及選填的混淆參數 |
| WireGuard | 以 UDP 為基礎的加密通道,透過金鑰識別對端 | 私鑰、對端公鑰、端點、通道位址及選填的預共享金鑰 |
結論:依伺服器端資料選擇 Type
先確認已有資料明確標示的協定,再逐項填寫;只有位址和連接埠不足以重建連線。若缺少驗證、傳輸或安全參數,應補齊原始資料,不要逐一切換 Type 嘗試連線。
二、協定、傳輸、TLS 與路由屬於不同層
協定決定用戶端與伺服器端如何驗證及組織資料;TCP、UDP、WebSocket 等描述傳輸方式或承載關係;TLS 用於相關連線的加密與身分驗證。Global Routing 則決定請求如何分流。這些項目可能同時出現在一份設定中,但修改其中一層不會自動修復其他層。
- 協定層:VMess 與 VLESS 是不同協定,即使兩筆設定都使用 UUID,也不能互換 Type。
- 傳輸層:使用 WebSocket 時,路徑與 Host 等參數必須符合伺服器端設定。路徑中的大小寫及斜線都可能影響比對。
- 安全層:SNI 是 TLS 握手中的伺服器名稱資訊;連線位址可以是 IP,但憑證通常須依指定網域驗證。
- 路由層:Global Routing 中的 Proxy、Direct、Config、Scene 是路由選項,不是協定名稱。排查單筆連線時,先確認實際請求確實經過該筆設定。
Home 用於管理連線與記錄,Config 用於管理設定檔,Settings 用於調整應用程式設定。在 Config 路由下,應依目前設定檔中的規則判斷流量去向;使用 Scene 時,須配合所選場景核對。Settings → On Demand 涉及依條件觸發連線,並非協定轉換或節點驗證設定。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
以上是規則語法範例,不是可連線的伺服器設定。DOMAIN-SUFFIX 依網域後綴比對,IP-CIDR 依位址範圍比對,GEOIP 使用 IP 地理位置資料,FINAL 則處理前面未比對到的流量。規則通常由上而下比對;這些關鍵字無法取代節點的密碼、UUID 或金鑰。
三、如何區分 Shadowsocks、VMess、VLESS 與 Trojan
Shadowsocks:加密方法與密碼須一併核對
Shadowsocks 密碼正確,不代表連線參數已完整;加密方法也必須與伺服器端一致。不能只因清單中的某個方法名稱相似就直接替換。若已有資料包含外掛程式,還須確認應用程式是否提供相應設定,以及外掛程式所需的模式、Host 或路徑;外掛程式參數不是通用的 TLS 開關。
VMess 與 VLESS:UUID 相同不代表能互換
兩者都可能使用 UUID,但驗證機制與資料處理方式不同。VMess 須核對 UUID、加密選項及伺服器端要求的傳輸設定;若驗證異常,也應檢查裝置的日期與時間。VLESS 本身不提供資料加密,連線安全性取決於外層安全與傳輸設定,UUID 不能當成加密設定。
Trojan:除了密碼,還要檢查 TLS
Trojan 的常見設定包括位址、連接埠、密碼與 SNI。連接埠 443 只是常見的部署選擇,並非固定要求。若憑證名稱與連線位址不一致,應核對伺服器端指定的 SNI,而不是直接關閉憑證驗證;密碼錯誤與憑證驗證失敗,屬於不同階段的問題。
- 先核對協定名稱,再檢查密碼或 UUID,避免混用不同協定的驗證資訊。
- 位址使用 IP、SNI 使用網域可以是正常設定;兩個欄位用途不同,不應強行填入相同值。
- WebSocket 的 Host 與 TLS 的 SNI 也不是同一欄位;即使伺服器端要求填入相同值,仍須分別核對。
- 傳輸方式、安全設定及額外欄位都應依據原始連線資料;缺少欄位時,不要自行猜測填入。
四、Hysteria2、WireGuard、HTTP 與 SOCKS5 的檢查重點
Hysteria2 與 WireGuard 都依賴 UDP,但兩者是不同協定。Hysteria2 以 QUIC 為基礎,須核對驗證、TLS 與選填的混淆參數;WireGuard 使用公私鑰與通道位址,須備妥完整的對端設定。不能只憑「UDP 已連通」就認定驗證、通道路由與 DNS 都已設定正確。
| 類型 | 需區分的設定 | 連線異常時優先檢查 |
|---|---|---|
| Hysteria2 | 驗證參數與混淆密碼可能有不同用途 | 目前網路是否允許 UDP 連至指定連接埠,再檢查驗證與憑證名稱 |
| WireGuard | 本機私鑰與對端公鑰不可互換;通道位址不是伺服器端點 | 端點、金鑰配對、通道位址及允許的路由範圍是否完整 |
| HTTP | 能瀏覽 HTTPS 網站,不代表用戶端到代理伺服器這段連線自動啟用 TLS | 代理連線的 TLS 要求、使用者名稱與密碼,以及伺服器端是否允許 CONNECT |
| SOCKS5 | 協定本身不提供傳輸加密;支援 TCP 不代表 UDP 一定可用 | 驗證方式、伺服器端的 UDP 支援情況與網路連通性 |
不要只看協定名稱就判斷速度。傳輸量與延遲也會受到網路路徑、封包遺失、伺服器負載及頻寬限制影響。比較已有連線時,盡量使用相同的測試網路、目標與時段,並記錄成功率及具體錯誤;單次延遲數值無法證明某種協定在所有網路環境下都更合適。
五、使用已有訂閱或連線資料新增並驗證
訂閱是批次取得連線記錄的方式,並非第九種傳輸協定。同一份訂閱可以包含多種協定,更新後記錄也可能變動。本文以使用者已有服務商與訂閱為前提;操作前請保留原始資料。訂閱網址與分享連結中的驗證資訊都應視為敏感資料。
-
核對原始資料
確認取得的是訂閱網址還是單一節點資料。訂閱網址格式如下:
https://example.com/sub?token=xxxx,此處僅為虛構範例,無法用於連線;請勿將它當成節點的 Server 位址。 -
選擇新增方式
匯入已有訂閱時,前往 Home → 右上角「+」→ Type → Subscribe,輸入完整的個人訂閱網址並儲存。手動新增時,請在 Type 中選擇資料明確標示的協定,而非 Subscribe。
-
檢查匯入欄位
儲存並更新訂閱後,返回 Home 查看產生的記錄。開啟目標記錄,核對 Type、位址與連接埠;若包含 TLS 或其他傳輸設定,再逐項比對原始資料,不要只看顯示名稱。
-
確認測試路由
在 Home 選擇要測試的記錄,並檢查 Global Routing。若要排除規則的影響,可暫時使用 Proxy 測試一般網頁請求,完成後恢復原本的路由;不要同時修改協定、DNS 和多項規則。
-
連線後再次確認
開啟連線,並依系統提示允許加入 VPN 設定,接著確認目標是否可存取。若要進一步檢查自動連線行為,再前往 Settings → On Demand;先分開處理手動連線問題與自動觸發問題。
更新訂閱是重新取得遠端記錄,不等於更新應用程式,也不保證每筆記錄的手動修改都會保留。若更新後協定、連接埠或名稱有所變動,請先比對新舊資料;若清單為空,先檢查訂閱的回應內容與網址是否完整,不要立即認定是應用程式不支援某種協定。
六、協定選擇與連線問題問答
我只有位址和連接埠,可以直接選 Trojan 嗎?
僅憑這些資訊無法確定協定。Trojan 還需要密碼及正確的 TLS 參數;其他類型可能需要 UUID 或金鑰。請先從已有連線資料確認協定名稱與完整欄位,再前往 Home →「+」→ Type 選擇相應類型。
VLESS 改成 VMess 後,為什麼連不上?
Type 不只是顯示標籤,它會決定實際使用的協定。改成 VMess 不會讓遠端的 VLESS 伺服器同時接受 VMess。請恢復原本的 Type,再核對 UUID、傳輸方式與安全設定。
Hysteria2 在一個網路可用,換個網路就連不上?
先維持記錄參數不變,分別確認兩個網路是否能連通 UDP。有些網路可能會限制 UDP;若出現 TLS 或驗證相關錯誤,請繼續核對 SNI、裝置時間與驗證欄位,不能只憑逾時就判定密碼錯誤。
顯示已連線,為什麼網頁還是打不開?
VPN 連線狀態不代表遠端代理請求已成功。先在 Home 核對目前使用的記錄,再確認 Global Routing 是否設為 Direct;若使用 Config,請檢查符合條件的規則與最終策略,並分開排查網域解析問題與代理驗證問題。
同一份訂閱可以包含不同協定嗎?
可以,前提是回傳內容採用應用程式可解析的格式,並包含每筆記錄所需的參數。匯入後請逐筆查看 Type;若有記錄缺漏,先核對訂閱回傳內容與該筆記錄的格式,不要藉由更改其他記錄的 Type 來補齊。