VMess 與 VLESS 不能只靠切換 Type 互相轉換:兩者都常以 UUID 識別使用者,但協定加密機制不同,外層也可能使用 TLS 與 WebSocket。本文適合已取得服務商參數或訂閱的使用者,依序核對「協定 → 認證 → 傳輸 → TLS」欄位,再透過 Global Routing 區分連線問題與規則問題。訂閱與節點請向服務商取得。
一、先分清 VMess、VLESS、TLS 與傳輸層
在 Shadowrocket(小火箭)中,VMess 和 VLESS 是兩種不同的代理協定,不是同一條連線的速度選項。伺服器使用哪種協定,客戶端就必須選擇相同的 Type。即使伺服器位址、連接埠和 UUID 完全一致,只把 VMess 改成 VLESS,也不會讓伺服器自動接受另一種協定。
理解參數時,應將設定拆成幾個獨立層次。VMess 或 VLESS 決定代理協定和認證格式;TCP、WebSocket 等決定連線的承載方式;TLS 則負責保護相應連線並驗證伺服器身分。WebSocket 本身不等於加密,連接埠設為 443 也不代表已啟用 TLS。
例如,「VLESS + WebSocket + TLS」表示使用 VLESS 處理代理請求,透過 WebSocket 承載,並由 TLS 保護至相應 TLS 終止點的連線。這三個名稱回答的是不同問題,不能互相取代。
二、加密與 UUID:VLESS 的 none 不代表整條連線沒有保護
VMess 支援在協定層加密資料。採用 AEAD 的 VMess 實作也會對相應的協定資料提供認證保護;資料加密方式須與伺服器相容。客戶端中的 auto 等選項與 VMess 的加密選擇有關,不能直接套用為 VLESS 的設定要求。
VLESS 本身不提供 VMess 所具備的協定層資料加密,常見參數中的 encryption=none 指的就是這一層。若外層正確設定 TLS,連線仍可受到 TLS 提供的傳輸保護。因此,「VLESS 沒有內建資料加密」和「VLESS 連線一定是明文」是兩回事;也不能因此關閉服務商要求的 TLS。
| 核對項目 | VMess | VLESS |
|---|---|---|
| 使用者憑證 | 通常使用 UUID,且須與伺服器上的使用者設定一致。 | 通常使用 UUID,且須與伺服器上的使用者設定一致。 |
| 協定層資料加密 | 支援協定層加密,請依伺服器要求選擇相容設定。 | 不提供此層加密,常見的 encryption 值為 none。 |
| 外層 TLS | 可搭配 TLS 使用,不由協定名稱自動決定。 | 可搭配 TLS 使用,不能因為 none 就關閉 TLS。 |
| AlterId | 屬於舊版相容參數;現代 AEAD VMess 通常使用 0,請勿自行改為非零值。 | 不使用 VMess 的 AlterId,不能照抄。 |
| 時間檢查 | 認證與時間有關,裝置時間若明顯有誤,可能導致連線失敗。 | 並非 VMess 的時間認證機制,但 TLS 憑證有效期檢查仍仰賴正確時間。 |
UUID 是認證憑證,不是伺服器網域,也不是訂閱網址。兩種協定使用外觀相同的 UUID,不代表帳號可以共用。複製時請勿包含引號、空格或換行;傳送診斷資訊給他人時,請遮蔽 UUID、訂閱 token 和其他憑證。
三、Shadowrocket 節點欄位:先看共通項,再看差異
在 Home 新增或編輯節點時,先核對 Type,再逐項填寫。已有訂閱的使用者,建議優先匯入服務商提供的資料,以免手動抄寫時遺漏額外參數。下表依欄位用途整理;不同 Type 顯示的選項可能不同,請以目前介面及服務商說明為準。
| 欄位或參數 | 填寫內容 | 常見錯誤 |
|---|---|---|
| Type | 明確選擇 VMess 或 VLESS。 | 只看節點名稱猜測協定;名稱可自行設定,不能作為判斷依據。 |
| 伺服器位址 | 填入服務商提供的網域或 IP 位址。 | 把完整訂閱 URL 填入位址欄,或誤加 https://。 |
| Port | 填入服務商提供的整數連接埠,例如 443。 | 以為 TLS 只能使用 443,擅自改掉實際連接埠。 |
| UUID | 逐字元保留原值。 | 把節點備註當成帳號,或複製時漏掉字元。 |
| 傳輸設定 | 依參數選擇 TCP、WebSocket 等對應方式。 | 以為兩種協定都必須使用 WebSocket。 |
| TLS / SNI | 核對開關、伺服器名稱與憑證要求。 | 直接把連線位址複製為 SNI,忽略服務商指定的網域。 |
| WebSocket Host / Path | 啟用 WebSocket 時,依伺服器要求填寫。 | 漏掉 Path 開頭的 /,或把 Host 和 SNI 當成同一個欄位。 |
伺服器位址決定連線目的地;SNI 是 TLS 交握中的伺服器名稱指示,並與相應的憑證驗證設定有關;WebSocket Host 則是 HTTP 請求中的主機資訊。這些值有時相同,但用途不同。服務商分別提供時,應各自保留,不要為了「看起來整齊」而統一修改。
- 先保留一份原始參數,確認 Type、位址、Port 和 UUID。
- 接著核對傳輸方式;只有使用 WebSocket 時,才需要設定相應的 Host 和 Path。
- 最後核對 TLS、SNI 及服務商要求的其他參數,不要預設以關閉憑證驗證來排除問題。
- 儲存後回到 Home 選擇該節點,實際測試請求;每次只修改一項,方便判斷原因。
四、匯入訂閱與手動填寫:兩種核對方式
訂閱是批次提供或更新節點資訊的入口,不是 VMess 或 VLESS 本身。一份訂閱可以包含不同協定;更新後,節點位址、連接埠和傳輸參數也可能改變。匯入成功只代表客戶端讀取到資料,不保證憑證仍有效或伺服器目前可用。
核對方式:保留原始參數,減少重複手動修改
已有訂閱
- 訂閱請向服務商取得,在 Home 透過新增訂閱的入口完成新增與更新。
- 展開匯入結果,檢查 Type、位址和連接埠是否符合服務商說明。
- 更新前記錄手動修改的內容;訂閱更新可能重建或覆寫節點欄位。
只有單一節點參數
- 在 Home 新增節點,先選擇正確的 Type。
- 依欄位表輸入 UUID、傳輸與 TLS 參數,不要混用兩種協定各自專用的設定。
- 保留原始紀錄,參數變動時逐項比對,不要反覆猜測開關設定。
兩種方式都應以伺服器設定為準;訂閱入口、節點憑證與應用程式購買紀錄分別管理。
訂閱網址通常包含認證資訊。示意網址 https://example.com/sub?token=xxxx 僅用來說明格式,不能用於匯入。請勿將實際網址放在公開截圖、聊天紀錄或日誌中;訂閱更新失敗時,先區分網址過期、請求無法送達,以及回應內容無法解析,再向服務商確認。
五、連線測試:區分節點參數錯誤與 Global Routing 選擇
Home 用來選擇節點並連線,Config 用來管理設定檔與規則,Settings 則包含應用程式設定。節點協定填寫正確,不代表每個請求都會經過該節點;Global Routing 會決定流量的處理方式,還須配合 Config 中目前生效的規則判斷。
Config
建議依目前設定的規則選擇處理策略;未符合前置規則的請求通常會交由 FINAL 處理。結果是否直連取決於設定,並非固定「其餘流量都直連」。
適用情況:已核對規則,日常使用時需要依目標區分處理方式。
Proxy
將流量交由代理路徑處理,可暫時排除依目標比對規則的影響。測試時仍須核對所選節點及適用的排除設定。
適用情況:維持目標網站不變,檢查所選節點是否能完成請求。
Direct
使用直連路徑;在此模式下網頁能開啟,不能證明剛填寫的 VMess 或 VLESS 節點有效。
適用情況:比對本地網路能否直接連線至同一個目標。
若使用 Scene,也要核對相應場景的設定,不能只根據上次選取的節點推斷目前路徑。排查時固定網路和測試目標,先記錄原有模式,再短暫切換測試,完成後恢復原設定。On Demand 負責依條件建立連線,不會替你修正 UUID、SNI 或 WebSocket Path。
- Direct 可以開啟、Proxy 失敗:檢查所選節點、伺服器連線狀態與認證參數,不要先修改規則。
- Proxy 可以開啟、Config 失敗:檢查目前設定中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 與 FINAL 指向的策略,並搭配請求紀錄判斷實際符合的規則。
- 連線逾時:先核對位址、連接埠和目前網路;單憑逾時無法證明 UUID 有誤。
- TLS 或憑證相關錯誤:檢查裝置時間、SNI、憑證名稱與 TLS 設定,不要把略過驗證當成一般解法。
六、常見問題:速度、轉換與匯入後的異常
VLESS 一定比 VMess 快嗎?
不能只根據協定名稱判斷。請在相同網路、相近測試時段和相同目標下,記錄請求完成情況與延遲,再核對伺服器路徑、壅塞情形和外層傳輸。如果兩個節點的伺服器不同,就不能把差異全歸因於協定;VLESS 沒有內建資料加密,也不代表所有情況下的傳輸量都更高。
直接把 Type 從 VMess 改成 VLESS 可以嗎?
不能靠這樣完成轉換。請先向服務商取得相應的 VLESS 參數,再到 Home 新增獨立節點進行核對。伺服器必須設定相應協定;即使 UUID 相同,也不能取代伺服器端的支援,原有 VMess 節點應保留以供比對。
UUID 和連接埠都正確,為什麼 WebSocket 還是連不上?
接著檢查傳輸方式、Host、Path、TLS 和 SNI。例如伺服器要求的 Path 是 /connect,填成 connect 或 / 就不是相同路徑。遇到 HTTP 狀態錯誤時,請依服務商說明核對反向代理入口,不要隨機更換網域;/connect 只是路徑示意,並非通用值。
更新訂閱後,原本能用的節點失敗了,該怎麼辦?
先在 Home 確認目前選取的節點,再比對更新後的 Type、位址和傳輸參數,並檢查先前手動修改的內容是否遭到覆寫。如果回傳資料缺少必要欄位,請保留已遮蔽憑證的錯誤描述並向服務商確認,不要自行猜測 UUID 或 TLS 設定。
七、核對應用程式來源與服務範圍
Shadowrocket 是閉源商業應用程式,唯一的購買與安裝入口為 App Store,採一次性買斷。核對時請確認官方圖示、開發者 Shadow Launch Technology Limited,以及應用程式 ID 932747118。主要使用裝置為 iPhone 和 iPad;系統需求、價格、相容性與購買適用範圍,均以 App Store 頁面標示為準。