本文適合已持有服務商提供的設定,並準備在 Shadowrocket(小火箭)中確認 VMess 或 VLESS 參數的使用者。先分清協定驗證、資料加密、傳輸方式與 TLS,再依序檢查 Add Server 欄位。讀完即可判斷 UUID、連接埠、Server Name、Host 與 Path 分別屬於哪一層,避免誤以為更改 Type 就能轉換協定。
一、VMess 與 VLESS:先分清驗證與加密
VMess 與 VLESS 都能以 UUID 識別使用者,但兩者的協定格式並不相同。VMess 提供協定層的驗證與資料加密機制;VLESS 基礎協定本身不負責資料加密,通常須搭配 TLS 等安全傳輸機制。不能因為兩份設定都有 UUID,就認為兩者可以互換。
此處所說的加密,是指用戶端與伺服器之間的代理連線。網頁本身的 HTTPS 屬於另一層:網頁使用 HTTPS,不代表整條代理連線也受到同等保護;代理連線啟用 TLS,也不代表瀏覽的所有網站都會自動使用 HTTPS。排查時請分別確認這兩層。
| 檢查項目 | VMess | VLESS |
|---|---|---|
| 使用者識別 | 使用 UUID 等驗證參數,必須與伺服器端一致。 | 使用 UUID 識別使用者,必須與伺服器端一致。 |
| 協定層加密 | 支援協定層資料加密;請依現有設定填寫具體方式。 | 基礎協定不提供資料加密;不要將相關的 none 值解讀為必須關閉 TLS。 |
| 外層 TLS | 可以使用,是否啟用取決於伺服器端的部署方式。 | 通常搭配 TLS 等安全傳輸機制,須確認實際部署設定。 |
| 傳輸方式 | 可搭配 TCP、WebSocket 等方式,視雙方支援情況而定。 | 同樣須符合傳輸方式設定,不能只確認協定名稱。 |
| 切換協定 | 改用 VLESS 須有相應的伺服器端設定。 | 改用 VMess 同樣須有相應的伺服器端設定。 |
較新的 VMess 設定常使用 AEAD 驗證。若舊設定中出現 Alter ID,請勿將它當成 UUID,也不要把舊參數直接套用到另一份設定。若匯入內容與服務商目前的說明不符,請先確認該設定是否仍受支援,再調整欄位。
二、UUID 與連接埠:格式相同不代表連線相同
UUID 常見格式為五組十六進位字元,例如 123e4567-e89b-42d3-a456-426614174000。此處僅用於說明格式,並非可用的驗證憑證。輸入時請保留完整內容,不要加入空格,也不要將設定名稱、訂閱名稱或帳號登入密碼填入 UUID 欄位。
Address 決定連線目的地,Port 決定連線至哪個服務入口,UUID 則決定以哪個使用者身分驗證。三者必須互相符合。同一個位址上的 443 與 8443 可能對應不同入口,不能因為其中一個連接埠較常見就自行替換。
- 確認 Address:只填入設定要求的網域或 IP,不要將整段訂閱連結填入位址欄位。
- 確認 Port:填入原始設定提供的數字,不要加上協定前綴或路徑。
- 確認 UUID:檢查複製時是否漏掉開頭或結尾字元,並避免混入換行。
- 確認憑證狀態:憑證過期、遭停用或受到連線限制時,即使格式正確也可能無法通過驗證。
三、TLS、Server Name 與 WebSocket:逐層確認設定
將連線拆分成四層會更容易檢查:先連線至 Address 與 Port,再完成 TLS(若有啟用),接著建立 WebSocket 等傳輸,最後進行 VMess 或 VLESS 驗證。這是用來理解設定的簡化模型;若某一層失敗,繼續修改後續的 UUID 通常無法解決前一層的問題。
Server Name 通常與 TLS 的 SNI 及憑證名稱確認有關。WebSocket 的 Host 屬於 HTTP 要求標頭,Path 則是要求路徑。兩者可能使用同一個網域,也可能因部署方式而異。不要直接將 Host 複製到 Address,也不要把 Path 當成訂閱連結的路徑。
啟用 TLS:伺服器端已提供 TLS 入口
建議依照現有設定啟用 TLS,並確認 Server Name 與憑證相符。此處建議的是使用已提供的安全入口,不是任意替連接埠強制加上 TLS。
適用情況:服務商明確提供 TLS 參數,且連線使用的網域與憑證相符
關閉 TLS:伺服器端明確要求使用非 TLS 入口
僅在既有部署要求下使用。VLESS 基礎協定不會加密;不能因為關閉 TLS 後暫時可以連線,就將此設定視為通用方案。
適用情況:確認使用其他安全封裝,或在受控測試環境中核對參數
結論:先確認 TLS 與傳輸設定,再檢查驗證
若出現憑證名稱錯誤,請先確認 Server Name、裝置時間與憑證狀態;若 WebSocket 握手失敗,請先確認 Host、Path 與傳輸方式。不要以關閉憑證驗證來取代修正設定。
例如,現有設定指定 TLS、Port 為 443、WebSocket Path 為 /proxy,就應逐項保留這些值。將 Path 改為 /,即使位址、連接埠與 UUID 都沒變,也可能無法連上同一個服務。路徑是否區分大小寫、是否包含查詢參數,請以原始設定為準。
四、依序在 Add Server 中填寫
在 Home 點選新增按鈕,進入 Add Server。建議先匯入自己已有的服務商設定,再開啟項目檢查;只有取得完整參數時才手動輸入。不同 Type 顯示的欄位可能不同,若沒有某個選項,請勿改選其他協定來勉強補上。
- 選擇 Type。原設定使用 VMess 就選擇 VMess,使用 VLESS 就選擇 VLESS。名稱相似不代表驗證格式相容。
- 填寫連線入口。逐項輸入 Address、Port,確認沒有將網域後方的路徑一併貼入位址欄位。
- 填寫身分參數。將 UUID 填入相應的驗證欄位。VMess 的加密相關參數請依原設定填寫,不要憑經驗更改。
- 設定傳輸方式。依原設定選擇 TCP 或 WebSocket 等支援的方式;使用 WebSocket 時,還要確認 Host 與 Path。
- 確認 TLS。依原設定設定 TLS 與 Server Name。原設定要求的其他安全參數也必須相符;不能只憑「VLESS + TLS」幾個字推斷完整設定。
- 儲存並選取項目。返回 Home,確認已選取剛儲存的伺服器,再以相同目標進行連線測試。
透過訂閱匯入時,伺服器項目參數與 Config 規則屬於不同層面。更新訂閱可能會重新寫入伺服器參數;排查前請先保存原始資訊,避免暫時修改的內容在下次更新後遭覆蓋。訂閱網址可能包含存取憑證,截圖或詢問時請遮蔽完整連結與 UUID。
五、連線失敗:區分協定問題與流量分流問題
Home 中的開關已開啟,只能表示連線流程已啟動,不能證明所選伺服器已完成驗證,也不能證明目前瀏覽的網頁經過該伺服器。Global Routing 決定流量如何分配,伺服器的 Type 則決定如何與伺服器端通訊,兩者屬於不同層面。
檢查方式:分開測試伺服器連線與 Config 規則
先檢查伺服器連線
- 記錄目前的 Global Routing 設定與伺服器選擇。
- 暫時使用 Proxy 測試一般網頁要求,減少 Config 規則的影響。
- 固定同一個 HTTPS 測試目標,每次只更改一項參數。
- 若仍持續失敗,依序確認連線入口、TLS、傳輸方式與 UUID。
再檢查 Config 分流
- 確認伺服器可用後,恢復原本的 Global Routing 設定。
- 在 Config 中確認目前實際啟用的設定。
- 檢查 DOMAIN-SUFFIX 等規則是否在 FINAL 之前命中。
- 若只有特定網域連線失敗,再確認 DNS 與實際命中的策略。
Proxy 測試可協助縮小排查範圍,不會將 VMess 轉換成 VLESS;測試後請恢復日常設定。
Direct 用於直接連線,不能用來驗證代理伺服器是否可用。Scene 涉及依情境套用的設定,也不等於某一種固定協定。若連線狀態會自動改變,還應查看 Settings → On Demand,記錄現有觸發條件;不清楚原設定用途時,請勿反覆切換。
- 連線逾時:優先檢查位址解析、連接埠是否可連、目前網路與伺服器端狀態;逾時本身無法證明 UUID 有誤。
- 憑證錯誤:確認 Server Name、裝置日期與時間、憑證是否有效及信任鏈;不要直接略過驗證。
- WebSocket 握手錯誤:確認傳輸方式是否一致、Host 與 Path 是否完整,以及反向代理是否仍提供該路徑。
- 驗證後立即中斷:確認協定類型、UUID 與伺服器端限制;若使用 VMess,也請確認裝置時間是否正確。
- 只有部分網站連線失敗:記錄網域、Global Routing 與規則命中情況,再判斷問題來自 DNS、規則或目標服務。
六、常見問題:更換協定前先確認這些條件
將 Type 從 VMess 改成 VLESS,就能直接使用嗎?
不行。請先向現有服務商確認是否提供相應的 VLESS 入口,再使用完整設定。即使 Address、Port、UUID 看起來相同,伺服器端仍必須接受相應協定。保留原項目,另建測試項目會更容易還原。
VLESS 顯示 none,是不是應該關閉 TLS?
不是。VLESS 相關的 none 值與外層 TLS 是不同層面的參數。請回到項目的 TLS 設定,依原始設定確認是否啟用及 Server Name,不要只根據這個值決定關閉 TLS。
同一台伺服器,VLESS 一定比 VMess 快嗎?
不能只憑協定名稱判斷。請固定網路、測試目標、傳輸方式與測試時段,再觀察連線可用性、延遲及持續傳輸表現。伺服器負載、連線丟包與外層傳輸都可能影響結果,單次測速不足以判定協定優劣。
手動修改後可以連線,但更新訂閱後又失敗,該怎麼辦?
比較更新前後的 Type、Port、TLS、Host 與 Path,確認是否被訂閱內容重新寫入。請將必要參數記錄在本機,並向現有服務商確認訂閱輸出的內容。不要反覆覆寫原項目而不保留差異。
建議依序處理:先確認現有服務提供的完整設定,再確認 Shadowrocket 支援該組合,最後在相同條件下測試。協定名稱只是連線入口資訊,能否連線取決於所有參數是否相符。若要進一步了解 Home、Config 與 Settings 的基本操作,可使用下方的教學入口。