Shadowrocket VMess 與 VLESS 差異:新增伺服器時要核對的參數

說明 VMess 與 VLESS 在加密、UUID、傳輸方式及 TLS 設定上的差異,協助依服務商提供的參數正確填寫 Add Server。

本文重點

VMess 與 VLESS 不能只改 Type 就互相轉換;一般使用者需要核對協定類型、UUID、傳輸方式與 TLS 參數,而非僅憑名稱判斷速度。本文適用於在 iPhone、iPad、Mac、Windows、Android 與 Linux 上使用 Shadowrocket 的使用者,並以 iPhone / iPad 上的 Home → Add Server 操作為例,其他平台請依對應欄位核對。前提是使用者已有自己的服務商與訂閱;閱讀後可依參數單逐項檢查,並區分認證、傳輸與分流問題。

1. VMess 與 VLESS 的核心差異:認證與加密並非同一層

Shadowrocket(小火箭)是閉源商業應用程式。VMess 與 VLESS 是其支援的代理協定,不是兩個獨立的用戶端。伺服器啟用哪種協定,用戶端就必須選擇對應的 Type;名稱相近、都使用 UUID,不代表參數可以共用。

VMess 提供使用者認證及可設定的協定層資料加密機制,實際加密選項須符合伺服器設定。VLESS 本身不提供同類型的協定層資料加密,一般部署會搭配 TLS 等安全傳輸機制。看到 VLESS 的加密欄位為 none,不能直接推斷整條連線都是明文,還需要確認外層是否使用 TLS。

核對項目VMessVLESS
使用者識別碼通常使用 UUID 進行使用者認證,必須與伺服器設定一致。同樣使用 UUID 作為使用者識別碼,但不能因此當成 VMess 連線。
協定層加密有相應的資料加密選項,請依照既有設定保留。本身不負責同類型的資料加密,不能照搬 VMess 的加密設定。
外層 TLS是否啟用取決於伺服器部署,不能只看協定名稱判斷。常見部署會搭配 TLS;具體開關與認證參數仍以伺服器設定為準。
底層傳輸可搭配不同傳輸方式,用戶端須與伺服器設定相符。同樣須使用相符的傳輸方式,不能只複製位址與 UUID。
切換條件伺服器必須提供相應的 VMess 設定。伺服器必須提供相應的 VLESS 設定;修改 Type 不會改變伺服器支援的功能。

結論:先確認伺服器提供的協定,再設定加密與 TLS

如果現有設定可以連線,請先保留;若要改用另一種協定,請向自己的服務商取得完整的新設定,不要只在舊記錄上切換 Type。

2. UUID、連接埠與傳輸:分別核對四組參數

UUID 是使用者識別碼,不是伺服器位址,也不是訂閱網址。常見格式是含連字號的十六進位字串。字元數量與格式正確,只能表示外觀看起來符合格式,無法證明伺服器上仍有該使用者。複製時請避免連同空格、換行或通訊軟體附加的標點一起貼上。

128 bit
UUID 的識別碼長度不代表連線加密強度
36 個字元
UUID 的常見文字格式,包含 4 個連字號
443
常見 TLS 服務連接埠範例,並非所有設定都使用此固定連接埠
  1. 位址與連接埠:伺服器位址可以是網域名稱或 IP;連接埠請依參數單填寫。使用 443 不會自動啟用 TLS,也不代表該連接埠一定提供代理服務。
  2. 認證參數:確認 UUID 完整無誤,並檢查該記錄是否仍在有效期間。請勿將訂閱連結中的 token 填入 UUID 欄位。
  3. 傳輸參數:確認實際使用的傳輸類型,例如 TCP、WebSocket 或 gRPC;若設定還提供 WebSocket Path、Host 或 gRPC serviceName,也須逐項填寫相符。
  4. 安全參數:確認 TLS 開關、伺服器名稱與憑證驗證要求。只有伺服器採用相應設定時,用戶端設定才有作用。

例如,參數單註明 WebSocket Path 為 /tunnel 時,不可自行簡化成 /;大小寫、開頭的斜線與路徑內容都應保留。WebSocket Host、TLS 的 SNI 與實際連線位址各有不同用途,即使某份設定中三者相同,也不能因此將所有記錄改成相同值。本文中的 example.com 僅為範例網域,並非可連線的服務位址。

3. 在 Add Server 填寫:優先保留完整參數

若既有訂閱已包含完整參數,建議先在 Home 使用匯入後的記錄;確實需要手動新增時,再進入 Home → Add Server。不同平台的欄位排列可能不同,請依欄位用途填寫,不要照著某張截圖中輸入框的順序操作。訂閱連結、UUID 與分享連結都可能包含存取憑證,請勿公開傳送。

兩種設定方式:既有訂閱與手動輸入參數

已有自己的訂閱
  • 在 Home 確認訂閱已匯入,且記錄並非空白。
  • 開啟目標記錄,查看 Type、位址、連接埠與 TLS。
  • 更新後重新檢查目標記錄,避免繼續使用已失效的舊項目。
  • 修改前先保留原始參數,以免之後無法還原。
已有完整參數單
  • 進入 Home → Add Server,先選擇相符的 Type。
  • 填入位址、連接埠與 UUID,再設定傳輸方式。
  • 依照原始參數單填寫 Path、Host、SNI 等附加參數。
  • 儲存後返回 Home,選取該記錄再進行連線測試。

更新訂閱可能會重新產生記錄;若需要長期調整參數,請先向自己的服務商確認,不要把臨時手動修改當成伺服器已完成變更。

VMess 參數單若包含額外認證選項,請依原設定處理。舊資料中的某些參數不一定適用於目前的伺服器,不能看到教學中的數值就直接套用。VLESS 參數若含額外的 flow 設定,也不能任意套用到不同傳輸方式;若缺少說明,請取得與該連線相符的完整參數,不要逐項猜測拼出設定。

  1. 先確認 Type 與參數單上的協定名稱一致,避免將 VLESS 記錄建成 VMess。
  2. 逐字核對 UUID、伺服器位址與連接埠,確認沒有貼到相鄰欄位。
  3. 核對傳輸方式及其附加欄位,再檢查 TLS;不要一次變更多個選項。
  4. 儲存後只測試這筆記錄,並記下錯誤發生於連線、TLS 交握或網頁請求階段。

4. TLS 如何設定:由伺服器決定,不是速度開關

TLS 用來保護傳輸並驗證對端身分,不能以「開啟較慢、關閉較快」作為設定依據。伺服器要求 TLS 而用戶端未啟用時,連線通常無法如預期完成;反之,對只接受一般傳輸的連接埠傳送 TLS 交握,也會造成連線失敗。尤其不能將 VLESS 的加密欄位 none 理解成「TLS 也應關閉」。

啟用 TLS,並核對伺服器名稱

建議設定

自己的服務商提供 TLS 設定時,請依原始參數啟用 TLS、保留憑證驗證,並核對 SNI。前提是伺服器確實採用這套設定,不是將任意連接埠都強制改成 TLS。

適用情況:服務商明確提供 TLS 參數的 VMess 或 VLESS 連線

關閉 TLS,保留原有傳輸設定

只有伺服器參數明確指定時,才依原設定操作。還必須了解外層的保護方式,尤其不可將未加 TLS 的 VLESS 連線,與已使用 TLS 的連線視為具有相同安全條件。

適用情況:已有明確部署說明,且須配合非 TLS 伺服器的連線

SNI 是 TLS 交握期間用來識別目標伺服器名稱的資訊;憑證驗證也須檢查憑證是否與預期名稱相符。如果連線位址是 IP,而憑證簽發對象是網域名稱,通常須依服務商說明填入正確的伺服器名稱。WebSocket Host 屬於另一層,修改它不代表 TLS 的名稱驗證就會正確。

5. 儲存後無法開啟網頁:分開檢查協定與分流問題

在 Home 選取記錄並啟用連線,不代表每個請求都會經由該記錄傳送。Global Routing 決定如何處理請求,Config 則須查看設定檔中的規則。若請求實際上走 Direct,就不能用網頁是否開啟來判斷剛填好的 VMess 或 VLESS 是否可用。

檢查位置觀察重點下一步
Home → Global Routing → Config請求會依 Config 中的規則比對,不保證使用目前選取的代理記錄。查看請求記錄與命中的策略,確認目標請求實際走哪條路徑。
Home → Global Routing → Proxy暫時排查時,讓由用戶端處理的請求走代理路徑。確認已選取目標記錄後再測試;完成後恢復原本的日常模式。
Home → Global Routing → Direct直連結果無法證明代理協定參數正確。測試代理記錄時,請勿停留在 Direct。
Home → Global Routing → Scene依已設定的場景處理,結果取決於場景設定。先檢查目前場景實際採用的策略,再判斷連線結果。
Settings → On Demand影響依條件觸發連線,不會修正 UUID、TLS 或傳輸欄位。測試期間確認連線狀態,避免將自動連線行為誤判為協定故障。

在 Config 模式下,DOMAIN-SUFFIX 可依網域後綴比對,IP-CIDR 依 IP 網段比對,GEOIP 依 IP 地理歸屬條件比對,FINAL 則處理未符合前置規則的請求。這些規則決定流量的去向,不會替伺服器建立使用者,也無法補上缺漏的 UUID。規則所指定的策略目標也必須存在於目前的設定中。

  1. 先確認 Home 目前選取的是剛才核對過的記錄,而不是同名的舊記錄。
  2. 暫時切換到適合排查的代理路徑,使用同一個目標請求重複測試,避免同時更換記錄、模式與網路。
  3. 若在連線階段發生錯誤,重新檢查位址、連接埠、認證與 TLS;若已建立連線但特定網站仍無法使用,再檢查 DNS、規則與目標網站狀態。
  4. 測試完成後恢復原本模式,保留錯誤類型與發生時間;向自己的服務商回報時,請隱藏 UUID、token 等敏感欄位。

6. VMess 與 VLESS 常見設定問題

使用相同的 UUID,為什麼將 VMess 改成 VLESS 就無法使用?

UUID 只是認證參數之一,伺服器還必須運行相符的協定與傳輸服務。請先還原原本的 Type;若確實要使用 VLESS,向自己的服務商取得獨立且完整的連線參數,再於 Add Server 新增記錄。不要在唯一可用的記錄上反覆嘗試修改。

VLESS 顯示 none,是否代表沒有加密?

先確認這個設定指的是哪一層。VLESS 的協定層加密欄位為 none,不代表外層沒有使用 TLS。開啟該記錄,核對 TLS、伺服器名稱與憑證驗證設定;若參數單未說明保護方式,請先詢問自己的服務商,不要自行補上加密名稱。

連接埠已填 443,為什麼仍出現 TLS 錯誤?

連接埠號碼不會自動確保 TLS 設定正確。請依序確認伺服器是否真的在該連接埠提供 TLS、SNI 是否符合憑證、裝置時間是否正確,以及 WebSocket 或 gRPC 的附加參數是否相符。請勿以關閉憑證驗證取代這些檢查。

哪一種比較快?是否應該把所有 VMess 都改成 VLESS?

不能只憑協定名稱下結論。伺服器負載、往返延遲、封包遺失、傳輸方式與出口連線都會影響使用體驗。先保留可用記錄;若確實有兩組可用設定,請在相同網路、相同目標與相近時間條件下分別測試並記錄結果,不能將不同線路的差異全歸因於協定。

訂閱更新後,手動修改的參數又恢復原狀,該怎麼處理?

訂閱記錄可能會依服務商下發的內容重新產生。先確認更新後的參數是否已變更,再確認訂閱仍有效。若需要長期修改,請將不相符的欄位明確回報給自己的服務商;若暫時建立獨立記錄,請保存原始參數並清楚區分名稱,避免日後選錯。

本文僅說明既有設定的填寫與自我檢查。本網站不提供、不販售或推薦節點、訂閱或服務商。遇到帳號有效期限、伺服器連接埠或憑證部署問題,應由使用者自己的服務商確認;修改用戶端欄位無法取代伺服器端修復。

下載 Shadowrocket