VMess 與 VLESS 不能只靠切換 Type 互相轉換。本文適用於已有服務商參數的 Shadowrocket(小火箭)使用者,依序核對協定、身分憑證、傳輸方式與 TLS。讀完即可分辨 UUID、Server、Host、SNI 各自的用途,並依錯誤發生的位置檢查設定,不必反覆猜測開關。
一、VMess 與 VLESS 的差異,先看哪一層
先說結論:選擇伺服器實際提供的協定,不要依名稱判斷速度。VMess 提供協定層的驗證與加密機制;VLESS 本身不提供流量加密,須搭配伺服器指定的安全層使用。VLESS 的協定加密欄位為 none,不代表整條連線一定是明文,也不代表應關閉 TLS。
手動設定時,請分開看「使用哪種協定識別使用者」、「資料透過什麼方式傳輸」及「如何保護連線」。WebSocket 是傳輸方式,TLS 是安全層,兩者都不是 VMess 或 VLESS 的同義詞。同一協定可以有不同組合,但用戶端設定必須與伺服器逐項一致。
| 核對項目 | VMess | VLESS |
|---|---|---|
| 協定身分 | 以 UUID 識別使用者,涉及驗證與時間檢查 | 以 UUID 識別使用者,但不能因此認定可與 VMess 通用 |
| 協定加密 | 依伺服器參數選擇相符的加密設定,不要自行猜測 | 協定加密為 none,仍須另外核對連線保護 |
| 傳輸方式 | 核對 TCP、WebSocket 等具體要求 | 同樣要核對實際傳輸方式及其附加欄位 |
| 安全層 | 可能另行使用 TLS,應以提供的參數為準 | 核對 TLS 或其他明確指定且目前 App 支援的安全設定 |
因此,沒有一套通用做法可以「複製 VMess 的 UUID,再把 Type 改成 VLESS 就完成升級」。即使兩組參數剛好使用相同 UUID,也必須確認伺服器確實提供相應的協定入口、連接埠與傳輸設定。
二、開啟 Add Server 前,先備妥完整參數
在 Home 點選右上角的新增按鈕,進入 Add Server,先選擇 Type,再填寫該類型顯示的欄位。不同 Type 或傳輸選項會影響後續欄位;本文以 UUID、SNI 等協定名稱說明欄位對應方式,實際輸入項目的名稱與位置請以目前 App 畫面為準。
- 確認參數屬於同一個入口。將協定、Server、Port、UUID、傳輸方式與安全層整理在同一份紀錄中,不要混用舊訊息中的連接埠與新設定中的網域。
- 分清單一設定與 Subscribe 位址。訂閱位址用來取得一組設定,不是 Server,也不是 UUID。若已透過 Subscribe 匯入項目,請優先比對其現有詳細資料,不要另建一筆缺少附加參數的副本。
- 保留原設定。手動排查前先記錄原始值;必要時新增測試項目,每次只修改一個欄位。後續訂閱更新可能會重新寫入由服務商管理的欄位,請勿把暫時修改當成永久修復。
- 備妥附加參數。若使用 WebSocket,另備 Host 與 Path;若使用 TLS,另備伺服器名稱與憑證要求。若 VLESS 明確提供 Flow,也應一併核對,不要自行填入。
三、Server、Port 與 UUID 分別怎麼填
Server 是要連線的伺服器位址,通常是網域或 IP 位址,不含 https://、網頁路徑或查詢參數。Port 是伺服器實際監聽的連接埠。填入 443 不會自動啟用 TLS,填入網域也不會自動產生正確的 SNI。
UUID 是協定身分憑證,不是備註名稱,也不是 Apple 帳號。複製時請保留連字號,移除前後空格與多餘換行;不要把參數中的整段 id=... 連同鍵名一起填入。即使格式正確,也無法證明伺服器目前仍接受該憑證。
- 位址錯誤:可能無法解析網域,或連到其他伺服器;先檢查拼字,不要先修改 UUID。
- 連接埠錯誤:可能出現連線遭拒或逾時;不要因為看到 443 就套用其他項目的 TLS 設定。
- 身分驗證錯誤:底層連線可能已建立,但協定驗證失敗;請核對 UUID、Type 與帳號狀態,不要只看延遲數字。
- VMess 時間問題:驗證與時間有關。若其他欄位都一致但仍驗證失敗,請在裝置的「設定 → 一般 → 日期與時間」中確認自動設定已開啟,且目前時間正確。
四、WebSocket 的 Host、Path 與 TLS 的 SNI 不要混填
這幾個欄位常是網域或短字串,作用階段卻不相同。Server 決定連線目的地;SNI 在 TLS 交握時指定伺服器名稱;WebSocket 的 Host 與 Path 則用於 HTTP 升級請求及伺服器路由。它們可能相同,也可能不同,不能只靠 Server 推算出所有值。
分別核對兩組欄位:傳輸方式與安全層
WebSocket 傳輸欄位
- 先確認傳輸方式確實要求 WebSocket,不要只因參數中出現網域就選用它。
- Host 依提供的值填寫,不要加上協定前綴;若明確包含連接埠,也不要自行刪除。
- Path 保留開頭的
/、大小寫與查詢參數,不要填入完整網頁網址。 - 例如
/ws與/WS可能對應不同路由,不能視為相同。
TLS 安全欄位
- 依參數確認是否啟用 TLS,不要只根據 Port 判斷。
- SNI 通常填寫伺服器名稱,不含
https://或路徑。 - 核對憑證涵蓋的名稱、有效期限與裝置時間;不要以忽略憑證錯誤來取代排查。
- 若有提供 ALPN 等附加項目,請依原值核對;未提供時不要照抄其他項目的值。
連線位址、TLS 伺服器名稱與 WebSocket Host 是三種不同角色;只有原始參數要求相同時,才填入相同值。
以下僅示意欄位之間的關係,並非可連線的設定,也不表示實際伺服器支援這些值。實際填寫時必須使用自己現有入口的完整參數;未提供的欄位不要依照範例補填。
Type: VLESS
Server: edge.example.com
Port: 443
UUID: 使用現有入口提供的完整 UUID
Transport: WebSocket
Host: web.example.com
Path: /ws
TLS: enabled
SNI: web.example.com
五、如何判斷 TLS 開關:依入口要求,不看協定名稱
VMess 可以搭配 TLS,VLESS 也不能只憑協定名稱決定 TLS 開關。此處比較的是同一個 App 中安全層的設定方式,不是替兩種協定排定優先順序。建議設定適用於「現有參數明確要求啟用 TLS」的情況;若伺服器明確採用其他安全方案,應核對該方案所需欄位及目前 App 的支援情況。
原始參數要求 TLS:保留 TLS 與名稱驗證
建議啟用相應的 TLS 設定,逐項核對 SNI、憑證與附加參數。若名稱不符,先檢查參數,不要關閉驗證來規避問題。
適用情況:現有入口明確提供 TLS 與伺服器名稱的設定
原始參數不使用 TLS:核對實際安全方案
不要勉強啟用 TLS,也不要把「不使用 TLS」理解成可以省略所有保護。尤其是 VLESS,必須確認整條連線如何取得加密保護,以及相關欄位是否完整。
適用情況:現有入口明確說明安全層組合且參數齊全
判斷方式:先查看原始參數中的安全層,再檢查加密欄位
看到 VLESS 的 none 時,不要關閉 TLS;先確認它指的是協定加密還是連線安全層,再修改相應設定。
六、儲存後如何驗證,避免把分流問題誤認為協定問題
儲存項目後,回到 Home 選取剛核對的設定,再進行連線測試。延遲顯示數值只代表該測試收到回應,不能證明 UUID、WebSocket 路由、TLS 與目標網站存取都正常。以下現象僅供分類排查,並非特定錯誤訊息的唯一解釋。
- 先確認目前使用的確實是該項目。核對 Home 中目前選取的設定,避免編輯的是新項目,連線時卻仍在使用另一個舊項目。
- 接著確認 Global Routing。
Direct無法用來驗證代理入口;在Config下,目標可能被規則導向直連。可暫時使用Proxy排除規則選擇的影響,測試後再恢復原設定。 - 記錄失敗階段。連線逾時時先檢查 Server、Port 與網路連線狀況;TLS 失敗時先檢查安全層、SNI、憑證與時間;連線建立後仍失敗,則再檢查 UUID、傳輸欄位及伺服器狀態。
- 最後檢查規則與 DNS。若 Proxy 可以存取、Config 卻無法存取,請檢查目前 Config 中符合的規則及策略,不要繼續修改協定憑證。
規則中的 DOMAIN-SUFFIX,example.com,DIRECT 會將符合的網域交由 DIRECT 處理;FINAL 則是在前面的規則都未符合時採用的最終策略。此時的存取結果反映的是規則路徑,不一定是剛新增的 VMess 或 VLESS 項目。不要把暫時驗證用的全域選擇當成長期分流設定。
七、手動新增 VMess 與 VLESS 的常見問題
只有 UUID 和網域,可以直接新增嗎?
無法據此完整還原設定。至少還需要確認 Type、Port、傳輸方式與安全層;WebSocket 可能還需要 Host 和 Path。請先向自己目前使用的服務商確認缺少的欄位,不要用常見連接埠或預設路徑代替實際值。
把 VMess 改成 VLESS,為什麼立刻無法連線?
兩種協定的處理方式不同,伺服器也必須提供對應入口。請回到 Home 編輯該項目,還原原本的 Type 與參數;若要使用 VLESS,應另行取得該入口的完整參數,而不是只重用 UUID。
VLESS 顯示 none,是不是設定錯了?
若它代表 VLESS 的協定加密,none 符合該協定的設計。請繼續檢查 TLS 或其他指定的安全層;不能據此推斷整條連線未加密,也不要把它當成關閉 TLS 的指示。
訂閱匯入後可以使用,手動新增卻不行,該先檢查什麼?
在 Home 分別開啟兩個項目的詳細資料,依序比對 Type、Server、Port、UUID、傳輸方式、安全層及附加欄位。特別檢查手動填寫時是否漏掉 Path、SNI 或 Flow;不必先重置 Settings,也不要將完整憑證貼到公開討論區。
連接埠是 443,還需要核對 TLS 嗎?
需要。443 只是連接埠號,不會替用戶端決定協定。請返回項目編輯頁面,依原始參數檢查 TLS 開關與伺服器名稱;若出現憑證問題,先核對 SNI 與裝置時間,不要把關閉驗證當成一般解法。
完成一次核對後,請保留「原始值、修改項目、結果」三項紀錄。只要確認失敗發生在位址連線、TLS 交握、協定驗證或規則選擇階段,下一步便能針對該層處理,不必同時更換協定、連接埠與傳輸方式。