Shadowrocket(小火箭)支援多種代理與隧道協定,但用戶端無法將同一台伺服器任意切換成另一種協定。本文適合已有服務商提供的設定、準備手動新增或核對匯入結果的使用者:先辨認協定與傳輸層,再逐項確認位址、連接埠、驗證資訊與 TLS 參數,最後透過 Connectivity Test 和實際網頁請求進行驗證。
一、支援哪些協定:先區分協定、傳輸與分流
Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 都在本文的核對範圍內。它們解決的問題並不完全相同:有些是代理協定,有些是加密隧道;同一種代理協定也可能採用不同的傳輸方式。新增時應依據現有設定選擇 Type,不要只憑名稱、連接埠或預期速度猜測。
協定類型與 Global Routing 是兩個層次的設定。前者決定用戶端如何連線至伺服器,後者決定哪些請求使用代理、哪些直接連線。協定設定正確但路由採用 Direct,目標請求仍不會經過所選伺服器;規則設定正確,但伺服器驗證失敗,也無法建立代理連線。
| 協定 | 傳輸方式與安全界線 | 新增前應備妥的參數 |
|---|---|---|
| Shadowsocks | 使用設定指定的加密方式;TCP 與 UDP 的支援情況須由連線兩端配合。 | 伺服器位址、連接埠、Password、Method,以及現有設定要求的其他參數。 |
| VMess | 驗證參數與承載傳輸分別設定;可能涉及 WebSocket、TLS 等選項。 | 位址、連接埠、UUID、加密選項與傳輸參數。 |
| VLESS | 此協定本身不提供資料加密,安全性取決於設定採用的安全層。 | 位址、連接埠、UUID,以及伺服器要求的 TLS、傳輸方式與 Flow 等參數。 |
| Trojan | 通常在 TLS 連線中傳輸代理資料;使用密碼進行驗證。 | 位址、連接埠、Password、TLS 伺服器名稱及相關傳輸設定。 |
| HTTP / SOCKS5 | 基礎代理協定;協定名稱本身不代表連線已加密。 | 位址、連接埠,以及伺服器要求的使用者名稱、密碼與安全連線選項。 |
| WireGuard | 以 UDP 為基礎的加密 IP 隧道,使用金鑰而非一般使用者名稱進行驗證。 | 本端私密金鑰、隧道位址、對端公用金鑰、Endpoint,以及路由參數。 |
| Hysteria2 | 以 QUIC 為基礎,底層使用 UDP,並涉及 TLS 驗證。 | 位址、連接埠、驗證資訊、SNI,以及設定要求的混淆參數。 |
結論:先核對完整參數,再測試連線
取得「位址和連接埠」不代表設定資料已完整。請先向現有設定來源確認 Type、驗證方式與傳輸層;若缺少 UUID、金鑰或 TLS 伺服器名稱,請勿以其他欄位代替。
二、Shadowsocks、VMess、VLESS 與 Trojan 的欄位差異
這四種類型常見於匯入結果,但驗證欄位不能互換。Shadowsocks 的 Password 不等於 VMess 或 VLESS 的 UUID;Trojan 的 Password 也不能填入伺服器網域名稱。編輯現有項目時,應保留原始設定,再逐項修改,避免一次更動多個變數,導致無法判斷失敗原因。
- Shadowsocks:Method 必須與伺服器設定一致。例如,現有設定指定
aes-128-gcm,就不能只為了「提升安全性」而自行改用其他演算法。若原設定含有外掛程式或混淆選項,也應一併核對;驗證資訊正確,無法彌補傳輸設定不相符的問題。 - VMess:UUID 是驗證識別碼。若傳輸方式採用 WebSocket,還需確認 Path 與 Host;若啟用 TLS,則須核對伺服器名稱。若介面顯示 Alter ID,請依設定來源填寫,不要照搬舊教學中的數值。
- VLESS:確認 UUID 後,接著檢查安全層、傳輸方式與 Flow。只有設定明確要求時,才填入相應選項。不能因為 VLESS 本身不加密,就關閉現有設定中的 TLS。
- Trojan:先核對 Password,再檢查 TLS 伺服器名稱與憑證驗證。若連線位址是 IP,但憑證是簽發給網域名稱,仍可能需要依設定指定網域名稱作為 SNI;不要直接把 IP 當成憑證名稱。
部分附加欄位會依 Type、傳輸選項與平台介面而異。只填寫現有設定明確提供的項目;若欄位沒有顯示,請先檢查前置選項,不要把內容貼到備註或密碼欄位。憑證驗證失敗時,應檢查裝置時間、伺服器名稱與憑證鏈,不要將關閉驗證當成一般處理方式。
三、如何判斷 HTTP、SOCKS5、WireGuard 與 Hysteria2
HTTP 與 SOCKS5 適合依現有代理端點的功能使用。HTTP 代理可透過 CONNECT 建立隧道,但這不代表用戶端到代理伺服器之間已加密。SOCKS5 的 UDP 機制需要用戶端與伺服器共同支援,不能只因 Type 設為 SOCKS5,就認定所有 UDP 請求都能使用。
WireGuard 與 Hysteria2 都仰賴底層 UDP 可連通,但用途與驗證方式不同。WireGuard 是 IP 隧道;Hysteria2 則透過 QUIC 傳輸代理流量。網路允許 TCP,不代表也允許 UDP,因此「其他協定可以連線」並不能排除這兩種類型受到網路限制。
| 核對項目 | 檢查內容 | 常見混淆點 |
|---|---|---|
| HTTP / SOCKS5 | 確認伺服器是否要求 Username 與 Password;並確認連線至代理端點時是否另有 TLS 要求。 | 網站使用 HTTPS,不代表代理端點本身使用 TLS;Username 與 Password 不要填反。 |
| WireGuard 金鑰 | Private Key 屬於本端,Peer Public Key 屬於對端;若有提供 Preshared Key,也必須一致。 | 不可將本端公用金鑰填成本端私密金鑰,也不可用一般密碼取代金鑰。 |
| WireGuard 位址與路由 | 核對隧道 Address、Endpoint 與 Allowed IPs。0.0.0.0/0 表示所有 IPv4 位址範圍。 | Address 是隧道內的位址,不是伺服器的公網位址;Allowed IPs 也不是網站網域清單。 |
| Hysteria2 | 核對驗證資訊、UDP 連接埠、SNI、憑證驗證,以及原設定是否要求混淆。 | Hysteria 與 Hysteria2 不能只靠變更 Type 互換;混淆密碼也不一定等於驗證密碼。 |
WireGuard 的 Allowed IPs 是隧道層級參數,與 Shadowrocket 在 Config 中使用的網域分流規則不同。Hysteria2 的實際表現則會同時受到 UDP 連通性、封包遺失、伺服器負載與設定影響。不要只憑協定名稱推測速度,也不要在未測量前填入過高的頻寬參數。
四、在 Add Server 中新增並驗證:四個步驟
以下以 Home、Config、Settings 這組介面為例。手動新增前請備妥完整參數;若已有訂閱或完整設定,建議保留原始匯入結果,再透過編輯介面核對。本文僅說明如何使用現有設定,不提供或推薦連線資源。
-
選擇類型
前往 Home → 點選右上角「+」,開啟 Add Server,並在 Type 中選擇與原設定相符的協定。不要只因兩個項目都使用 443 連接埠,就選擇相同的 Type。
-
填寫驗證資訊
填入伺服器位址與連接埠,再依類型填寫 Password、UUID 或金鑰。連接埠請填入原設定指定的數字,不要加上協定前綴;複製驗證資訊後,請檢查前後空格與換行。
-
核對傳輸設定
依原設定填寫 TLS、SNI、WebSocket 的 Host 與 Path 等項目;WireGuard 則須核對隧道與對端參數。儲存後返回 Home,將該伺服器設為預設,並確認選取標記確實位於目標項目上。
-
驗證連線
前往 Home → Global Routing,暫時選擇 Proxy,開啟連線開關並執行 Connectivity Test。接著瀏覽自己已知可正常連線的 HTTPS 網頁;驗證完成後,恢復原先使用的 Config 或 Scene,並再次檢查實際請求。
Connectivity Test 的結果只能用來判斷測試目標的連線狀況,不能證明所有應用程式、所有協定流量都正常。若測試通過但某個應用程式仍失敗,請進一步確認該應用程式使用 TCP 或 UDP、請求是否符合預期策略,以及 DNS 是否取得可用結果。
五、訂閱、設定與協定項目的用途
訂閱主要用於匯入及更新現有伺服器資訊;Config 中的設定檔則主要包含分流與相關設定。更新訂閱後,項目的位址、驗證資訊或傳輸參數可能改變,因此不要把由訂閱管理的項目當成永遠不變的手動副本。若要嘗試修改,請先保留原始資訊,避免下次更新覆蓋後失去比對依據。
- 匯入現有訂閱:Home →「+」→ Type → Subscribe,填入自己的訂閱網址並儲存,再返回 Home 更新相應訂閱。訂閱網址屬於敏感憑證,不應放在公開截圖或記錄中。
- 核對更新結果:確認是否新增預期項目,再開啟項目檢查 Type 與傳輸設定。訂閱成功下載,不代表其中每台伺服器都能從目前網路連線。
- 恢復日常分流:Global Routing 的 Proxy 用於統一透過代理進行排查,Direct 用於直接連線,Config 依所選設定處理,Scene 則依所設定的情境處理。診斷完成後,請恢復原本的使用方式。
- 檢查規則:在 Config 模式下,依序核對 DOMAIN-SUFFIX、GEOIP、IP-CIDR 等規則,以及最後的 FINAL。規則用來選擇策略,不會將 VLESS 轉換成 Trojan,也不會修改 WireGuard 金鑰。
以下是用來理解順序的規則片段,並非完整設定,也不含伺服器資訊。PROXY 必須對應至設定中可用的代理策略;IP-CIDR 使用文件示範網段,不應直接作為實際服務的分流依據。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
規則通常依由上而下的順序比對。若目標網域較早符合 DIRECT,後面的 FINAL 就不會再將該請求交由代理處理。反過來說,若暫時切換至 Proxy 測試時可以存取,恢復 Config 後卻失敗,應先檢查規則比對結果與所選策略,而不是立刻重新填寫伺服器驗證資訊。
六、常見問題:依失敗位置縮小排查範圍
位址和密碼都一樣,為什麼換了 Type 就連不上?
Type 決定交握方式與驗證格式。同一位址、同一連接埠,不代表伺服器同時提供多種協定。請回到 Home 編輯伺服器,還原原設定的 Type,再核對 Password 或 UUID;不要把更改 Type 當成速度最佳化方式。
VMess 或 VLESS 連線逾時,應先檢查哪裡?
先在 Home 核對 Address、Port 與 UUID,再確認傳輸方式。若使用 WebSocket,請檢查 Host 與 Path;若使用 TLS,請檢查 SNI 與裝置時間。每次只修改一組參數,並重新執行 Connectivity Test,以區分連線逾時、明確的驗證錯誤與憑證錯誤。
Hysteria2 在 Wi-Fi 下連線失敗,改用行動網路卻正常?
先保持伺服器與參數不變,只切換網路並重複測試。若差異持續存在,請檢查連線失敗的網路是否限制該 UDP 連接埠,並查看連線記錄中的逾時位置。不要先修改密碼;使用其他現有可用項目作為對照,也不能直接證明 UDP 連線正常。
測試通過了,為什麼網頁還是無法開啟?
先確認 Home 選取的是剛才測試的伺服器,再查看 Global Routing 是否設為 Direct。暫時切換至 Proxy 重新測試:若恢復存取,請繼續檢查 Config 的規則與策略;若仍然失敗,再核對 DNS、TLS 錯誤,以及目標網站是否可連線。不要把單次測試通過視為所有請求都成功。
排查記錄至少應保留協定類型、網路類型、失敗情況與具體錯誤資訊。分享記錄前,請移除訂閱網址、密碼、UUID 與私密金鑰;需要說明欄位關係時,只寫欄位名稱。這樣既能釐清問題發生於傳輸、驗證或分流階段,也能避免重複建立相同設定。