VMess 與 VLESS 是不同的代理協定,無法透過修改 Type 互相轉換。本文適合已有服務商與訂閱的 Shadowrocket(小火箭)使用者,從協定、身分憑證、傳輸方式和 TLS 四個面向拆解參數,並整理匯入與排查順序。看完即可判斷哪些欄位需要逐字核對,以及哪些設定不能只憑協定名稱推測。
一、VMess 與 VLESS 的主要差異在協定層加密
先說結論:VMess 本身具備認證與加密機制;VLESS 則將認證和傳輸保護分開,協定本身不負責載荷加密。VLESS 連線的安全性,須視實際採用的 TLS 等保護方式而定;「VLESS 本身不加密」不代表「所有 VLESS 連線都以明文傳輸」。
反過來說,VMess 已有協定層加密,也不代表可以任意關閉 TLS。若伺服器要求 TLS,客戶端仍須依照要求建立 TLS 連線。這兩層設定處理的是不同問題,必須與伺服器設定相符。
| 比較項目 | VMess | VLESS |
|---|---|---|
| 協定層保護 | 具備協定本身的認證與加密機制 | 負責身分認證,不自行提供載荷加密 |
| 身分憑證 | 通常使用 UUID,必須與伺服器設定相符 | 通常使用 UUID,不能因格式相同就跨協定共用 |
| 傳輸組合 | 依伺服器要求搭配 TCP、WebSocket 等傳輸方式 | 同樣需要核對實際傳輸方式與相關參數 |
| TLS 設定 | 是否啟用及驗證哪個名稱,取決於伺服器設定 | 不能只憑協定名稱推測 TLS 與其他安全選項 |
| 能否直接互換 | 不能。切換 Type 後,仍須具備對應協定的完整伺服器參數 | |
協定名稱也不代表速度等級。延遲、頻寬、網路壅塞、伺服器負載及傳輸組合都會影響結果。名稱相近的兩個節點可能連到完全不同的伺服器,不能因此認定某種協定一定比較快。
二、在 Add Server 中先核對 Address、Port 和 UUID
在 Home 找到要檢查的項目並進入編輯畫面;手動新增時,從 Home 的新增入口進入 Add Server,再選擇對應的 Type。欄位名稱與可見選項會依所選類型而異,核對時應以目前畫面及服務商提供的完整參數為準。
- Type:確認選的是 VMess 還是 VLESS。不要依節點備註猜測類型,也不要把修改 Type 當成升級操作。
- Address:填入實際連線使用的網域或 IP 位址。它不一定與 TLS 驗證名稱相同,也不要附上分享連結的協定前綴。
- Port:填入伺服器的監聽連接埠。例如服務商標示
443,就填443;不要因為啟用 TLS 就自行改成這個數值。 - UUID:完整保留服務商提供的身分憑證,並確認複製時沒有多出空格或換行。修改、截短或重新產生後,通常就無法通過原伺服器的認證。
- 其他參數:若目前畫面出現 VMess 的加密選項、VLESS 的 Flow 等參數,都必須依伺服器要求設定,不要套用其他項目的值。
常見的 UUID 文字格式會以連字號分隔十六進位字元。以下僅說明格式,不是可用的憑證,也不對應任何服務。即使兩個項目的 UUID 相同,連接埠、傳輸方式及安全設定仍可能不同,不能只核對這個欄位。
00000000-0000-0000-0000-000000000000
三、分清協定、傳輸方式與 TLS,不要用連接埠猜設定
單一連線可以同時使用 VLESS、WebSocket 和 TLS:VLESS 負責代理協定,WebSocket 提供傳輸方式,TLS 則負責相關連線的加密與身分驗證。這些名稱不能互相替代。將 WebSocket 改成 TCP,或關閉 TLS,都可能導致客戶端與伺服器無法完成相同的交握程序。
啟用 TLS 時,也要核對 SNI 或畫面中對應的伺服器名稱欄位。Address 可能是入口 IP,但憑證對應的是網域;此時不能直接把 IP 複製到名稱欄位。若使用 WebSocket,Host 和 Path 又是另一組參數:Host 用於請求路由,Path 指定請求路徑。即使看起來像網域或位址,也不要與 SNI 混填。
- TLS:依照伺服器要求保留啟用狀態及驗證設定;若出現憑證錯誤,先檢查名稱、憑證有效性和裝置時間。
- SNI:依服務商提供的名稱填寫,不要根據節點備註自行補上,也不要任意換成造訪網站的網域。
- Host:若傳輸設定要求此欄位,請保留原值;它可能與 SNI 相同,但用途不同。
- Path:開頭的
/、後續字元及可能包含的查詢字串,都應依原始參數保留。
結論:先還原完整參數,再判斷協定是否適用
若修改後出現交握錯誤,先重新匯入原始項目,逐一比對 TLS、SNI、Host 和 Path;不要用關閉憑證驗證來取代參數核對。
四、訂閱同時包含兩種類型時,保留匯入結果
訂閱連結請向服務商取得。匯入後,Shadowrocket 會依訂閱內容建立對應項目;同一份訂閱包含 VMess 與 VLESS,並不代表使用者必須將它們統一成同一種類型。節點備註只是方便辨認的名稱,實際協定應在編輯畫面的 Type 中確認。
- 在 Home 的新增入口中,依畫面選擇 Subscribe,貼上完整訂閱連結後儲存。不要把單一節點的分享內容誤當成訂閱網址。
- 更新訂閱,確認清單中已出現項目,再分別開啟一個 VMess 和一個 VLESS 項目,核對類型與重要欄位。
- 先使用原始匯入參數進行測試。若需要修改,請記下原值或保留可還原的副本,避免一次變更多個欄位。
- 之後更新時,訂閱管理的項目可能會被重新寫入。若要長期調整參數,應先向服務商確認來源內容,不要一再覆蓋更新結果。
手動填寫適合已有完整參數、需要逐項確認的情況。如果只有 Address 和 UUID,卻缺少傳輸方式或 TLS 參數,應先補齊資訊。不要只因為「這是 VLESS」就推測一定採用某種安全組合,也不要任意替 VMess 選擇加密選項。
五、先確認 Global Routing,再逐一排查單一變數
節點參數與路由模式是兩回事。即使項目設定正確,若目前流量沒有經過該項目,也無法從網頁的結果判斷它是否可用。Home 中的 Global Routing 決定流量處理方式;Config 頁面管理的設定檔則提供規則等內容。
Config:依目前設定檔處理
建議日常使用已核對的設定檔,依規則與策略選擇連線方式。未符合規則的請求如何處理,取決於最終規則與目前設定檔,並非固定直連。
適用情況:確認設定檔正確後的日常分流
Proxy:縮小規則造成的影響
讓 Shadowrocket 接管的連線使用目前的代理策略,方便排除一般規則分流造成的差異;同時確認策略實際選中了要測試的節點。
適用情況:暫時測試某個 VMess 或 VLESS 項目
Direct:確認直連基準
使用直連方式,不適合用來驗證代理伺服器是否可用。網頁在 Direct 模式下能開啟,只代表這次直連成功。
適用情況:比對本機網路與直連狀況
若正在使用 Scene,請核對場景實際套用的路由與策略,不要把 Scene 當成另一種節點協定。Config 中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 和 FINAL 會影響請求的去向,但不會將 VMess 轉成 VLESS,也無法修正 UUID 錯誤。
- 先確認裝置網路可正常使用,再於 Home 選取要測試的項目;若使用策略組,請確認組內實際選取的項目。
- 記下 Global Routing 設定,暫時切換至 Proxy,對同一個目標進行比對,觀察是連線逾時、TLS 錯誤,還是連線後仍無法存取。
- 每次只修改一個欄位再重試:先檢查 Address 和 Port,再檢查 UUID,最後核對傳輸方式、TLS 與名稱欄位。
- 若問題與中斷後自動重新連線有關,請前往 Settings → On Demand 檢查相關條件,避免將按需連線行為誤判為協定切換問題。
- 測試完成後,恢復原本的路由模式與按需設定,並保留可重現問題的紀錄。
六、常見問題:UUID 相同、TLS 錯誤與切換失敗
兩個節點的 UUID 相同,可以直接把 VMess 改成 VLESS 嗎?
不能只憑這點判斷。先在 Home 開啟原項目查看 Type,再與服務商提供的對應項目比較。即使身分文字相同,伺服器協定、連接埠、傳輸方式和安全設定仍可能完全不同;請匯入對應類型的完整參數。
VLESS 沒有載荷加密,是否應該手動啟用 TLS?
先確認伺服器使用的完整安全組合,再依原始參數設定。不要只憑 VLESS 名稱決定是否啟用;若來源明確要求 TLS,就一併核對 TLS、SNI 與憑證驗證,不要只開啟一個選項就結束檢查。
VMess 逾時,但 VLESS 可以使用,是 VMess 協定有問題嗎?
先固定網路和測試目標,確認兩條連線各自的 Address、Port 和策略選取狀況。VMess 也應檢查裝置日期與時間是否正確。若不同項目連到不同伺服器,一次成功或逾時不足以得出協定層面的結論。
節點有延遲測試結果,為什麼網頁還是打不開?
延遲結果不代表整條連線路徑都已成功。先確認 Global Routing 與實際使用的代理策略,再以相同目標重試,區分 DNS、TLS、認證或目標網站錯誤。回報問題時請記錄錯誤訊息,不要只寫「有延遲但不能用」。
判斷兩種節點是否設定正確,最終要看完整參數是否與伺服器相符,而不是名稱的新舊或欄位多寡。先保留訂閱匯入結果,再逐項核對身分、傳輸方式與 TLS,通常比反覆切換 Type 更容易找出問題。