本文適合已持有服務商提供的訂閱或參數,需要核對 VMess 或 VLESS 設定的使用者。先釐清協定驗證、協定加密、TLS 與傳輸方式,再逐項檢查位址、連接埠、UUID、伺服器名稱及傳輸參數;不要只改協定名稱,就把同一組設定當成另一種協定使用。
一、VMess 與 VLESS:先分清協定層與傳輸層
Shadowrocket(小火箭)中的 VMess 與 VLESS 是兩種不同的代理協定。兩者都可使用 UUID 作為使用者識別碼,但要求格式與驗證方式並不相同。伺服器提供哪一種協定,客戶端就必須選擇相符的類型;位址、連接埠與 UUID 相同,不代表伺服器會同時接受兩種協定。
VMess 具備協定本身的驗證與資料加密機制,實際使用的加密選項必須符合伺服器端與客戶端的支援狀況。VLESS 基礎協定不提供負載加密,常見部署方式會搭配 TLS 等安全層。VLESS 設定中的 encryption=none 描述的是協定層,不代表整個連線必然以明文傳輸。
| 比較項目 | VMess | VLESS |
|---|---|---|
| 使用者識別碼 | 使用 UUID,必須與伺服器端的使用者紀錄相符。 | 使用 UUID,必須與伺服器端的使用者紀錄相符。 |
| 協定負載加密 | 具備協定加密機制,加密選項不可直接照抄其他節點的設定。 | 基礎協定不提供負載加密,需另外確認安全層。 |
| TLS | 可搭配 TLS;具備協定加密不代表可以忽略憑證驗證。 | 常見設定會搭配 TLS;不能只看協定名稱就認定已啟用 TLS。 |
| 常見傳輸方式 | 常見組合包括 TCP、WebSocket 等,須與伺服器端設定相符。 | 常見組合包括 TCP、WebSocket、gRPC 等,須與伺服器端設定相符。 |
| 轉換條件 | 必須有相符的伺服器端入口及完整參數,不能只修改客戶端的 Type。 | |
協定名稱只說明連線的一部分。完整設定還包括傳輸與安全層,例如「VLESS + WebSocket + TLS」同時指定了協定、傳輸方式與安全層。遇到連線失敗時,應分層檢查,不要把所有問題都歸因於 UUID。
二、如何核對 UUID:格式正確不代表驗證通過
常見的 UUID 字串由十六進位字元與連字號組成,共 36 個字元,分成 8-4-4-4-12 五組。它是使用者識別參數,不是伺服器位址,也不是可以自行更換的備註。重新產生格式正確的 UUID,仍無法通過未登錄該識別碼的伺服器驗證。
- 從自己持有的訂閱或原始參數紀錄取得 UUID,不要根據備註、網域或訂單編號推測。
- 複製內容前,檢查前後是否混入空格、換行或中文標點,避免把整段說明貼進使用者識別碼欄位。
- 若訂閱更新後 UUID 已變更,請確認編輯的是更新後的項目,而非名稱相同的舊項目。
- 尋求協助時,請遮蔽完整 UUID 與訂閱權杖。UUID 雖不是傳統密碼,仍屬於連線憑證。
判斷方式:先確認格式,再核對來源
UUID 長度與分組都正確時,不要再隨機修改字元。回到同一筆原始紀錄,同時核對協定類型、位址、連接埠與使用者識別碼,避免把兩筆設定的欄位混在一起。
VMess 驗證也受時間條件影響。裝置時間明顯不準時,即使 UUID 正確也可能連線失敗。可先確認 iPhone 或 iPad 的系統日期與時間是否正確,再重新連線;不要透過修改加密方式來彌補裝置時間錯誤。
三、分別檢查 TLS、SNI、Host 與 Path
TLS 負責連線安全層,SNI 用於 TLS 交握時指示伺服器名稱;WebSocket 的 Host 與 Path 則屬於後續的 HTTP 請求。這些欄位可能使用相同網域,也可能依伺服器設計填入不同值,不能只因為「看起來像網域」就互相替換。
- Address 與 Port:決定要連線至哪裡。TLS 不限定使用
443;如果原始紀錄提供的是8443,就應保留8443。 - TLS 與伺服器名稱:確認是否啟用 TLS,以及用於名稱驗證與 SNI 的參數是否符合原始紀錄。位址若是 IP,不應直接推定伺服器名稱也要填入這個 IP。
- WebSocket Host:這是 HTTP 層的主機資訊,可能會用於反向代理路由。漏填或填錯,可能導致請求抵達伺服器,卻無法轉送至目標服務。
- WebSocket Path:通常以
/開頭,必須與伺服器端路徑完全相符;大小寫、結尾斜線及查詢字串都可能影響路由。 - gRPC serviceName:這是 gRPC 的服務識別名稱,不能直接填入 WebSocket Path 就認為兩者設定等效。
例如,若現有紀錄明確列出位址 edge.example.com、連接埠 443、TLS 伺服器名稱 tls.example.com、WebSocket Host ws.example.com、Path /gateway,就應分別核對這五項。這裡的網域與路徑僅用來說明欄位之間的關係,並非可用的連線設定。
四、在 Shadowrocket 匯入並檢查參數
已有訂閱時,先保留訂閱提供的完整設定,再逐項檢查個別項目。只有在原始參數齊全時,才適合手動輸入。Shadowrocket 的 Home 用於檢視及選擇連線項目,Config 用於設定檔與規則,Settings 用於 App 設定;協定驗證欄位不應填入 Config 的規則列。
保留訂閱匯入的參數
建議已有有效訂閱時,匯入後檢查協定、連接埠、TLS 與傳輸參數,不要任意修改 UUID 或 Type。先確認原始項目是否可用,再逐項調整。
適用情況:已有訂閱,希望減少手動抄錄錯誤
依完整紀錄手動填寫
逐項輸入伺服器提供的參數;欄位資料缺漏時,先確認內容,不要把預設值當成正確答案。儲存後記下調整項目,方便還原原始設定。
適用情況:已有完整的單筆參數,需要找出特定欄位問題
- 在 Home 點選右上角的新增按鈕,使用 Type 選擇相符類型;匯入現有訂閱時選擇 Subscribe,並在 URL 欄位填入自己的訂閱網址。
- 儲存後回到 Home,展開訂閱群組並進入目標項目的編輯頁面,先確認 Type 是 VMess 還是 VLESS。
- 依序核對位址、連接埠、UUID,再檢查 TLS、伺服器名稱與傳輸參數。不同類型顯示的欄位可能不同,請以目前頁面實際顯示的內容為準。
- 儲存後返回 Home,選取剛才檢查的項目。確認 Global Routing 目前的模式,再啟用連線並送出新的網路請求。
- 訂閱更新後,重新檢查相關項目;更新結果可能覆蓋本機手動修改,請勿混淆訂閱來源紀錄與暫時測試用設定。
訂閱 URL 通常包含權杖,分享截圖或記錄前應遮蔽完整連結。本文以使用者已持有自己的訂閱為前提,本網站不提供、不販售或推薦節點與訂閱。
五、連線失敗時分層排查,不要從協定名稱推測速度
「連接埠可連通」、「出現延遲數值」與「目標網頁可正常瀏覽」是不同的驗證項目。連接埠可連線只能表示某個入口有回應,無法證明 UUID 驗證、TLS 檢查或 WebSocket 路由都成功。以下依可觀察到的現象整理檢查方向,不把任何單一現象視為唯一原因。
| 可觀察到的現象 | 優先檢查 | 下一步 |
|---|---|---|
| 連線逾時 | 位址、連接埠、目前網路的連線狀況 | 核對原始連接埠,再改用自己的另一個網路重送相同請求。 |
| 憑證或名稱驗證錯誤 | 裝置時間、TLS 伺服器名稱、憑證 | 比對原始紀錄,不要預設以略過驗證處理。 |
| 連線後立即中斷 | Type、UUID、VMess 加密選項與時間 | 還原原始參數,再確認伺服器端入口是否相符。 |
| WebSocket 回應 404 或 400 | Host、Path、反向代理設定 | 檢查路徑大小寫與傳輸類型;狀態碼本身不代表 UUID 錯誤。 |
| 只有部分網域無法正常存取 | DNS 與規則的比對結果 | 確認該請求是否確實經過目前選取的項目。 |
在 Home → Global Routing 中,Proxy 可用來暫時排除規則影響;Direct 不適合用來驗證代理項目是否可用;Config 則依設定檔規則處理流量。如果目前使用 Scene,也要確認該場景實際套用的設定。規則中的 DOMAIN-SUFFIX、IP-CIDR、GEOIP 與 FINAL 比對結果,可能讓不同請求套用不同策略。測試結束後請還原原本的模式,避免長期保留暫時排查用設定。
判斷方式:先確認請求的路由,再比較連線表現
需要比較兩筆現有設定時,請固定裝置、網路、目標位址與測試方式,並確認請求確實經過各自的項目。伺服器位置、壅塞情況與傳輸組合不同,不能直接歸因為 VMess 與 VLESS 的固有速度差異。
六、UUID、加密與訂閱更新常見問題
可以把 VMess 的 Type 改成 VLESS 繼續使用嗎?
不能只修改 Type。先取得自己現有伺服器對應的 VLESS 入口參數,再新增項目並核對位址、連接埠、UUID、安全層與傳輸方式。即使伺服器使用相同 UUID,也不代表兩個入口的其他參數相同。
VLESS 裡看到 none,代表所有內容都沒有加密嗎?
先確認它指的是哪個欄位。協定層的 encryption=none 不代表 TLS 的狀態;請進入該項目的編輯頁面,確認是否啟用 TLS、伺服器名稱是否正確,並保留憑證驗證。網站本身的 HTTPS 也屬於另一個層次,不能取代代理安全層的檢查。
訂閱更新後,同名項目突然無法連線,應先改 UUID 嗎?
先回到 Home,確認目前選取的項目是否屬於更新後的群組,再核對 Type、位址、連接埠與傳輸參數。確認沒有選錯舊項目後,再比對自己原始訂閱紀錄中的 UUID;不要隨機產生替代值。
一筆設定能用、另一筆不行,代表 VLESS 一定比較快嗎?
單次成功或失敗無法證明協定速度。以相同目標重複送出請求,先排除位址、連接埠、TLS 與傳輸方式的差異,再記錄延遲、中斷現象及發生條件。未控制變因的結果只適用於當次連線,不能據此排列協定速度。
七、儲存設定前的最後檢查
協定選擇應依據現有伺服器的實際設定,而非追求特定名稱。VMess 與 VLESS 的共通檢查順序是入口連線狀況、身分參數、安全層、傳輸參數,最後再檢查規則與目標請求。每次只修改一項並保留原始紀錄,才能判斷是哪次調整改變了結果。
- Type 與伺服器端協定一致;Address、Port 與 UUID 取自同一筆紀錄。
- VMess 加密參數依原始紀錄填寫;VLESS 不沿用 VMess 加密欄位的定義。
- 分別核對 TLS、伺服器名稱、WebSocket Host 與 Path,或 gRPC serviceName。
- Home 中已選取目標項目,Global Routing 模式符合目前的測試目的。
- 匯出設定或分享排查資訊前,請遮蔽 UUID、訂閱 URL 及其他憑證。