Shadowrocket VMess 與 VLESS 差異:新增伺服器前必懂的欄位

對照 Add Server 中的 UUID、alterId、加密方式與傳輸層欄位,說明 VMess 與 VLESS 在驗證和加密上的差異,以及欄位填錯時常見的連線失敗情況。

本文重點

VMess 與 VLESS 不能直接互換 Type。兩者都使用 UUID 識別使用者,但驗證機制與協定內加密方式不同;TLS、傳輸方式、Host 和 Path 也必須分別符合伺服器設定。本文適合已持有自己的服務商設定或訂閱,準備在 Shadowrocket(小火箭)中匯入或手動填寫的使用者,依照「選對 Type → 核對驗證 → 核對傳輸 → 分層排查」的順序操作。

先說結論:Type 必須與伺服器一致

VMess 是具備驗證及選擇性載荷加密機制的代理協定;VLESS 的協定結構較精簡,本身不提供載荷加密,通常需要外層安全機制保護傳輸。兩者使用相同格式的 UUID,不代表同一個伺服器入口同時支援兩種協定。將現有 VMess 項目的 Type 改成 VLESS,並保留其他欄位原樣,並不能完成協定轉換。

新增前先確認資料是否完整。除了 Address、Port 和 UUID,也要確認傳輸方式及安全設定。連接埠 443 只是一個連接埠號碼,不能據此推斷「一定啟用 TLS」,也不能判斷使用的是 VMess 還是 VLESS。

核對項目VMessVLESS
使用者識別使用 UUID,並參與 VMess 驗證流程使用 UUID,採用 VLESS 的驗證結構
alterId與舊式驗證相容性有關;現代 AEAD 設定通常為 0沒有對應的 alterId 參數
協定內加密有 Security 相關選項,須符合伺服器要求協定本身不加密載荷;連結中的 encryption 通常為 none
外層安全性分別核對 TLS 等設定分別核對 TLS 等設定,不能將 none 當成安全層設定
傳輸方式TCP、WebSocket 等須與伺服器設定一致TCP、WebSocket 等須與伺服器設定一致

結論:先確認完整參數,再選擇 Type

如果只有「Address、Port、UUID」三項,請先向自己的服務商確認傳輸方式與安全設定;不要靠切換 Type 或輪流嘗試加密選項來補足缺少的資訊。

新增步驟:優先保留現有設定的完整欄位

在 Home 使用新增入口進入 Add Server,選擇資料指定的 Type,再逐項填寫。手動新增適合資料完整且需要核對欄位的情況;若已有完整分享連結或訂閱,匯入可減少漏填 Host、Path 等參數的機會。匯入後仍應開啟項目核對,不要只看顯示名稱。

匯入現有完整設定

建議

使用自己的分享連結或訂閱匯入,接著檢查 Type、Address、Port、TLS 與傳輸設定。建議匯入是為了減少轉錄錯誤,不代表任何來源的設定都可以直接信任。

適用情況:服務商已提供完整連結或訂閱,且參數較多

在 Add Server 手動填寫

依照參數表逐項輸入,先選擇 Type,再檢查隨協定變化而出現的選項。儲存前確認沒有照搬另一種協定的參數。

適用情況:已有完整參數表,需要逐項核對或找出差異

  1. 在 Home 確認目前要使用的項目,進入編輯頁面檢查 Type。不要只憑名稱中的「VMess」或「VLESS」判斷實際類型。
  2. 分別填寫 Address 和 Port。Address 通常是網域或 IP,不要把包含路徑的整段分享連結填入地址欄位。
  3. 複製完整 UUID,確認前後沒有多出空格、換行或引號,再填寫相應的協定選項。
  4. 檢查 TLS 與傳輸設定,儲存後重新開啟項目,確認欄位沒有遺漏。

單一分享連結描述一個連線項目,訂閱網址則用來取得並更新一組項目。例如 https://example.com/sub?token=xxxx 只是無法使用的訂閱格式範例,不是 Address 的填寫範例。訂閱更新可能會重新產生項目,排查前應記下手動修改的位置,避免將更新覆蓋誤認為設定沒有儲存。

驗證欄位:分別檢查 UUID 與 alterId

UUID 是使用者識別碼,不是伺服器網域,也不是訂閱網址中的 token。常見文字格式為 36 個字元,包含連字號,例如 123e4567-e89b-42d3-a456-426614174000。這裡僅示範格式,並非可用憑證;格式正確也不代表該 UUID 已獲伺服器授權。

VMess 的 alterId 不是用來調整延遲或速度的項目。舊式 VMess 驗證曾使用非零 alterId,現代 VMess AEAD 設定通常使用 0。如果舊資料填有其他數值,應確認伺服器目前使用的驗證方式,不要自行調高數值。VLESS 沒有對應的 alterId,不需要將它移植到其他欄位。

加密與傳輸:none 不等於關閉 TLS

協定內加密與外層 TLS 屬於不同層。VMess 的 Security 選項可能包含 auto、aes-128-gcm、chacha20-poly1305 等值,應以伺服器要求及 App 實際提供的選項為準。不要把 VMess 的加密值填入 VLESS 的對應欄位,也不要為了追求速度而任意選擇 none。

在 VLESS 分享參數中,encryption=none 表示 VLESS 本身不提供載荷加密,不代表外層連線不需要保護。如果原始設定使用 TLS,匯入後仍須保留 TLS;如果設定使用其他安全機制,也必須完整符合其專用參數,不能只開啟一般 TLS 取代。

核對方式:分開記錄安全層與傳輸層

TLS 安全層
  • 確認伺服器是否要求 TLS,不要根據連接埠猜測。
  • 檢查 SNI,也就是 TLS 交握時使用的伺服器名稱。
  • 核對憑證涵蓋的網域是否與 SNI 相符。
  • 保留憑證驗證,並依照錯誤修正網域或憑證。
WebSocket 傳輸層
  • 確認傳輸方式是 WebSocket,而不是一般 TCP。
  • 核對 Host,不要預設它與 Address 相同。
  • 逐字核對 Path,保留開頭的斜線。
  • 區分大小寫,並保留資料要求的路徑參數。

Address、SNI 與 WebSocket Host 可以相同,也可以不同;請逐項使用原始設定中的值,不要自動替換。

例如,假設參數表中的 Address 為 edge.example.com、Port 為 443、SNI 為 tls.example.com、WebSocket Host 為 web.example.com、Path 為 /connect,就應分別核對這五個欄位。這些都是僅供說明的虛構值,用來呈現欄位之間的關係,並非可連線的設定。

連線失敗:分層排查,不要只看延遲數值下結論

延遲測試出現數值,只能表示該測試涵蓋的步驟有回應,不能單獨證明 UUID、TLS、傳輸與目標網站連線都正常。不同測試方式涵蓋的層次不同,排查時應記下測試方式、錯誤訊息與發生階段。下表列出現象與檢查方向的對應關係,不能只憑一則錯誤訊息就判定原因。

觀察到的現象優先檢查下一步處理
伺服器網域解析失敗Address 拼寫及目前網路的解析情況核對原始地址,確認沒有混入協定前綴或路徑
連線逾時或遭拒絕Address、Port 與網路連線狀況確認連接埠與伺服器目前監聽的連接埠一致
TLS 憑證或交握錯誤TLS 開關、SNI、系統時間與憑證修正不相符的項目,不要把關閉憑證驗證當成一般解決方式
WebSocket 交握回應 400 或 404Host、Path、傳輸方式及伺服器路由逐字核對路徑;狀態碼本身不能證明 UUID 有誤
交握後請求遭關閉Type、UUID、VMess 驗證參數還原原始參數,再確認伺服器是否接受該使用者
測試有回應但網頁無法開啟Global Routing、所選項目與 DNS確認請求實際使用該項目,再分別檢查規則與解析
  1. 保留一份原始參數紀錄;包含 UUID 或訂閱 token 的內容,只存放在自己的安全位置,不要公開。
  2. 在 Home 選取要測試的項目,暫時將 Global Routing 設為 Proxy,減少 Config 規則干擾判斷。也須考量 App 內流量保留設定與系統限制。
  3. 發出相同的網頁請求,檢查錯誤發生於連線、TLS、傳輸或請求階段;每次只修改一個欄位。
  4. 驗證完成後,還原原本的 Global Routing。如果 Proxy 下可用、Config 下失敗,請到 Config 檢查規則命中情況與策略,不要繼續反覆修改 UUID。

Config 模式會依設定規則決定請求使用的策略。例如 DOMAIN-SUFFIX,example.com,DIRECT 會讓相應網域直接連線,即使 Home 中選取的項目本身可用,該請求也不一定會經過它。排除規則干擾,是為了區分「協定設定錯誤」和「請求沒有使用該項目」。

常見問題:切換協定、訂閱更新與欄位缺漏

VMess 可以使用,改成 VLESS 為什麼立刻失敗?

先還原原本的 Type。伺服器必須提供 VLESS 入口,並提供相應的 Port、UUID、傳輸方式及安全參數,才能另建 VLESS 項目。用戶端重新命名或切換 Type,不會改變伺服器支援的協定。

VLESS 找不到 alterId,是不是少填了一項?

不是。alterId 是 VMess 的相關參數。回到 Add Server 確認 Type 確實為 VLESS,再依照原始資料填寫 UUID、傳輸方式與安全設定,不要找其他欄位代填 alterId。

只有 UUID 和 443 連接埠,可以直接開啟 TLS 嗎?

無法據此判斷。請先向自己的服務商確認 Address、TLS 要求、SNI 與傳輸方式;如果使用 WebSocket,還需要取得 Host 和 Path。資訊不完整時,先暫停反覆嘗試填寫,較能保留有效的排查線索。

訂閱更新後,剛修改的 Path 又還原了,該怎麼辦?

在 Home 開啟更新後的項目,對照原始訂閱參數與自己的修改紀錄。訂閱內容由來源端決定,應請服務商修正來源設定;若要暫時驗證,可另建手動項目,避免誤以為臨時修改已修復訂閱。

選擇 VMess 或 VLESS,首先取決於現有伺服器支援哪種協定,再看實際傳輸與安全設定,不能單憑協定名稱推斷速度。Shadowrocket 用來使用使用者已有的設定;用戶端購買與網路服務分開管理。本網站不提供、不銷售、不推薦節點或訂閱。

App Store 正版核對