VMess 與 VLESS 並非可以直接互換的名稱。兩者都常用 UUID 識別使用者,但 VMess 可在協定層加密資料;VLESS 本身不提供資料加密,須另外確認 TLS 等安全層設定。本文適合已有服務商與訂閱的使用者,分別從協定、傳輸與安全層說明差異,再整理 Shadowrocket 欄位核對與疑難排解順序。
一、先分清協定、傳輸與 TLS
在 Shadowrocket(小火箭)中,選擇 VMess 或 VLESS 只代表指定連線使用的代理協定,並未同時決定傳輸方式與安全設定。名稱中有 VLESS,不代表一定使用 WebSocket;使用 VMess,也不代表已啟用 TLS。
可以將一條連線拆成三個問題:雙方使用什麼協定識別使用者、代理資料如何封裝傳送,以及用戶端到伺服器這段連線是否受 TLS 保護。填寫時必須逐層配合伺服器設定,不能只填地址、連接埠和 UUID 就忽略其他欄位。
| 層級 | 範例 | 核對項目 |
|---|---|---|
| 代理協定 | VMess / VLESS | Type 必須與伺服器端類型一致,UUID 也必須對應同一個帳戶。 |
| 傳輸封裝 | TCP / WebSocket | 選擇伺服器指定的方式;使用 WebSocket 時,還須核對 Host 與 Path。 |
| 安全層 | TLS | 確認是否已啟用,並核對用於交握與憑證驗證的伺服器名稱。 |
TCP 與 WebSocket 是本文用來說明的兩種常見設定,不代表完整的支援清單。可選項目以 App 目前顯示為準;若現有訂閱提供了特定傳輸參數,應以該設定為準,不要只憑協定名稱自行補填。
二、VMess 與 VLESS 的加密和 UUID 對照
VMess 的協定設計包含驗證與資料加密機制,常見設定採用 AEAD。VLESS 的協定設計較精簡,本身不會加密代理負載。因此,VLESS 設定中出現 encryption=none,不能單獨解讀為「整條連線都沒有加密」:還要確認外層是否使用 TLS。
| 項目 | VMess | VLESS |
|---|---|---|
| 使用者識別碼 | 通常使用 UUID。 | 通常使用 UUID。 |
| 協定層加密 | 具備資料加密機制;具體選項應依伺服器設定保留。 | 本身不提供資料加密,不能直接套用 VMess 的加密演算法設定。 |
| TLS 的作用 | 可作為額外的外層保護;是否使用不會由 VMess 名稱自動決定。 | 常用於保護用戶端與伺服器之間的連線;仍須核對實際安全設定。 |
| 舊欄位 | 舊設定可能會出現 AlterId;現代 AEAD 設定通常為 0。 | 不使用 VMess 的 AlterId 驗證機制。 |
| 能否改名轉換 | 不能。修改 Type 不會一併轉換伺服器的監聽方式或帳戶設定。 | |
UUID 是身分憑證,不是伺服器地址,也不是 TLS 憑證。即使兩筆設定恰好顯示相同的 UUID,只要協定、連接埠或傳輸方式不同,仍是不同的連線設定。請勿將 UUID 放進公開截圖、疑難排解貼文或分享文字中。
判斷方式:先檢查 TLS,再解讀 none
遇到 VLESS 的 encryption=none 時,先開啟該筆設定檢查 TLS 與伺服器名稱;不要為了消除 none 字樣而改用 VMess,也不要因為連接埠是 443 就預設已啟用 TLS。
三、在 Home → Add Server 逐項填寫
手動新增時,從 Home 進入 Add Server。不同 Type 與傳輸選項會影響後續欄位,介面也可能隨 App 更新而調整;下表說明應核對的欄位含義,不代表每條連線的表單都完全相同。
- 先選擇 Type。依服務商提供的資訊選擇 VMess 或 VLESS,再填寫其他欄位,避免切換類型後遺漏重設的選項。
- 填寫 Address 與 Port。Address 只填指定的主機名稱或 IP,Port 填入指定數字;不要將整條分享連結貼進地址欄。
- 填寫 UUID。完整複製使用者識別碼,檢查前後空格、漏字元或誤複製的換行,不要自行產生替代值。
- 核對傳輸參數。若使用 WebSocket,請再核對 Host 與 Path。路徑開頭的斜線與大小寫都應保留。
- 核對安全參數。依原始設定配置 TLS 與伺服器名稱。只有在服務商明確提供相關參數,且 App 顯示對應選項時,才填寫額外欄位。
- 儲存後返回 Home。選取剛儲存的項目,再進行連線測試。成功儲存只代表表單資料已記錄,不表示伺服器已接受連線。
| 欄位或概念 | 填寫依據 | 常見錯誤填法 |
|---|---|---|
| Address / Port | 使用現有服務商提供的連線地址與連接埠。 | 將 443 當成固定值,取代原設定中的其他連接埠。 |
| UUID | 使用對應目前伺服器端帳戶的完整使用者識別碼。 | 混用另一筆設定的 UUID,或複製時多帶空格。 |
| VMess 加密選項 | 保留匯入設定或服務商指定的內容。 | 直接套用其他協定的密碼或演算法。 |
| Host / Path | 依 WebSocket 等傳輸方式設定伺服器端參數。 | 漏掉 Path 的 /,或誤以為 Host 必須與 Address 相同。 |
| TLS / SNI | 安全層設定與伺服器名稱要求。 | 使用 IP 連線時,誤將 IP 當成憑證對應的網域名稱。 |
Address、WebSocket Host 與 TLS SNI 可能相同,也可能因伺服器部署方式而異。Address 決定連線目標,Host 是相應的應用層請求資訊,SNI 則是在 TLS 交握時提供的伺服器名稱指示。不要為了「統一」而將三者全部改成同一個網域名稱。
四、如何辨識訂閱中的 VMess 與 VLESS
訂閱是設定的分發方式,不是第三種代理協定。一份現有訂閱可能包含多種類型;名稱中的「VMess」或「VLESS」若只是備註,就不能作為最終判斷依據。請在 Home 開啟指定項目的編輯畫面,查看 Type 與相應參數。
- 查看實際類型:分享連結中的
vmess://與vless://前綴可供初步辨識;匯入後仍以 App 顯示的 Type 為準。 - 查看參數位置:VMess 分享資訊通常會將設定編碼後放在連結主體中;VLESS 分享連結通常會將 UUID 放在地址前,並以查詢參數描述傳輸與安全設定。不要只檢查可讀的備註名稱。
- 區分訂閱地址與單筆連結:訂閱地址用來取得一組設定,單筆分享連結則描述一條連線。兩者應使用各自的匯入入口處理。
- 更新後再核對:在 Home 更新對應訂閱後,檢查目標項目是否仍存在、Type、地址與傳輸設定是否有變動,並再次確認目前選取的項目。
例如 https://example.com/sub?token=xxxx 只是訂閱地址格式的示意,並非可用服務。實際訂閱中的 token 與 UUID 都應視為敏感資訊妥善保存;需要回報問題時,只記錄 Type、傳輸方式、連接埠,以及不含憑證的錯誤現象即可。
五、連線疑難排解:先固定設定,再檢查路由模式
VMess 與 VLESS 都可能因地址、驗證、傳輸或 TLS 參數不符而連線失敗。排查時一次只修改一個變數:先確認選取的伺服器,再確認協定與欄位,最後檢查流量是否確實經過該連線。不要同時修改 Type、連接埠、TLS 與 Global Routing,否則無法判斷是哪個項目影響結果。
保留原始協定與參數
建議做法先依現有訂閱或服務商提供的參數逐項比對,再分開測試。若設定明確要求 TLS,請維持憑證驗證,不要以關閉驗證取代錯誤排查。
適用情境:首次匯入、手動填寫、無法確認協定類型
Global Routing → Proxy
若要排除規則的影響,可暫時使用 Proxy 測試網頁請求。這不代表所有系統流量都必然會經過代理,也無法修正伺服器端參數錯誤。
適用情境:伺服器測試有回應,但懷疑網頁請求被規則分配到其他策略
Global Routing → Config
依目前 Config 的規則處理流量。測試結束後,還原原有模式,並檢查目標請求命中的規則與策略;不要將規則處理結果誤判為協定效能。
適用情境:確認連線可用後,日常進行規則分流與命中檢查
- 在 Home 選取目標項目,核對備註與實際 Type,避免測試到另一台伺服器。
- 執行 Connectivity Test,記錄該項目顯示的回應或失敗結果。測試結果只反映該次檢測過程,不保證所有網站與 App 都能存取。
- 完成系統提示的 VPN 設定授權並開啟連線開關,再測試實際網頁。若 Global Routing 設為 Direct,網頁直連結果無法證明代理協定可用。
- 若出現憑證相關錯誤,優先核對系統時間、TLS 伺服器名稱與憑證對應網域;若連線逾時,再檢查地址、連接埠與網路可達性。錯誤現象只是線索,不能單憑此作出診斷。
- 若使用 Config,請檢查規則順序,以及
DOMAIN-SUFFIX、IP-CIDR、GEOIP、FINAL對應的目標策略。這些規則決定請求如何分流,不會自動將 VMess 轉換為 VLESS。
檢查順序:可達性、驗證、傳輸、安全層、路由
先儲存原始設定並記錄一次失敗現象,再依層逐項核對;若修改某項後情況沒有改善,先還原該項再檢查下一項,不要連續疊加未確認的修改。
六、VMess 與 VLESS 常見問題
UUID 相同,可以直接把 VMess 改成 VLESS 嗎?
不能只憑 UUID 相同就轉換。請在 Home 開啟該項目確認 Type,並向現有服務商確認該連接埠實際接收的協定。即使使用者識別碼相同,伺服器端也必須具有相符的協定、傳輸與安全設定。需要使用另一種協定時,請改用服務商已提供的對應項目。
VLESS 顯示 none,是不是應該手動選擇加密演算法?
不要套用 VMess 的演算法。VLESS 的協定層不提供資料加密,請繼續檢查 TLS 等安全層設定。若原始設定明確使用 TLS,請在項目編輯畫面核對 TLS 與伺服器名稱;若安全參數不明確,先向現有服務商確認,再進行連線。
連接埠填了 443,為什麼還會出現 TLS 錯誤?
443 只是連接埠數字。請檢查是否依要求啟用 TLS、SNI 是否與憑證相符、裝置日期與時間是否正確,並確認 Address 是否連到正確的伺服器。不要透過關閉憑證驗證來掩蓋名稱不符的問題。
哪種協定一定比較快、延遲比較低?
不能只憑協定名稱判斷。比較時應盡量讓連線網路、伺服器位置、傳輸方式、TLS 與測試目標保持一致,並在 Home 重複執行 Connectivity Test,再檢查實際請求。不同伺服器的一次回應結果,不能單獨歸因於 VMess 或 VLESS。
訂閱更新後,手動修正的欄位又變了,該怎麼辦?
先確認變動的是由訂閱管理的原項目,還是獨立儲存的測試項目,再核對更新後的 Type、地址與安全參數。將不含憑證的修改前後差異提供給現有服務商;不要反覆覆寫 UUID,也不要公開完整訂閱地址。