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。
| 核對項目 | VMess | VLESS |
|---|---|---|
| 使用者識別碼 | 通常使用 UUID 進行使用者認證,必須與伺服器設定一致。 | 同樣使用 UUID 作為使用者識別碼,但不能因此當成 VMess 連線。 |
| 協定層加密 | 有相應的資料加密選項,請依照既有設定保留。 | 本身不負責同類型的資料加密,不能照搬 VMess 的加密設定。 |
| 外層 TLS | 是否啟用取決於伺服器部署,不能只看協定名稱判斷。 | 常見部署會搭配 TLS;具體開關與認證參數仍以伺服器設定為準。 |
| 底層傳輸 | 可搭配不同傳輸方式,用戶端須與伺服器設定相符。 | 同樣須使用相符的傳輸方式,不能只複製位址與 UUID。 |
| 切換條件 | 伺服器必須提供相應的 VMess 設定。 | 伺服器必須提供相應的 VLESS 設定;修改 Type 不會改變伺服器支援的功能。 |
結論:先確認伺服器提供的協定,再設定加密與 TLS
如果現有設定可以連線,請先保留;若要改用另一種協定,請向自己的服務商取得完整的新設定,不要只在舊記錄上切換 Type。
2. UUID、連接埠與傳輸:分別核對四組參數
UUID 是使用者識別碼,不是伺服器位址,也不是訂閱網址。常見格式是含連字號的十六進位字串。字元數量與格式正確,只能表示外觀看起來符合格式,無法證明伺服器上仍有該使用者。複製時請避免連同空格、換行或通訊軟體附加的標點一起貼上。
- 位址與連接埠:伺服器位址可以是網域名稱或 IP;連接埠請依參數單填寫。使用 443 不會自動啟用 TLS,也不代表該連接埠一定提供代理服務。
- 認證參數:確認 UUID 完整無誤,並檢查該記錄是否仍在有效期間。請勿將訂閱連結中的 token 填入 UUID 欄位。
- 傳輸參數:確認實際使用的傳輸類型,例如 TCP、WebSocket 或 gRPC;若設定還提供 WebSocket Path、Host 或 gRPC serviceName,也須逐項填寫相符。
- 安全參數:確認 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 設定,也不能任意套用到不同傳輸方式;若缺少說明,請取得與該連線相符的完整參數,不要逐項猜測拼出設定。
- 先確認 Type 與參數單上的協定名稱一致,避免將 VLESS 記錄建成 VMess。
- 逐字核對 UUID、伺服器位址與連接埠,確認沒有貼到相鄰欄位。
- 核對傳輸方式及其附加欄位,再檢查 TLS;不要一次變更多個選項。
- 儲存後只測試這筆記錄,並記下錯誤發生於連線、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 的名稱驗證就會正確。
- 遇到憑證名稱不符時,先核對 SNI 與服務商提供的網域名稱,不要先關閉憑證驗證。
- 遇到憑證有效期間相關錯誤時,檢查裝置的日期、時間與時區是否正確。
- 遇到交握逾時時,先檢查網路以及位址、連接埠是否可連通,再核對 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。規則所指定的策略目標也必須存在於目前的設定中。
- 先確認 Home 目前選取的是剛才核對過的記錄,而不是同名的舊記錄。
- 暫時切換到適合排查的代理路徑,使用同一個目標請求重複測試,避免同時更換記錄、模式與網路。
- 若在連線階段發生錯誤,重新檢查位址、連接埠、認證與 TLS;若已建立連線但特定網站仍無法使用,再檢查 DNS、規則與目標網站狀態。
- 測試完成後恢復原本模式,保留錯誤類型與發生時間;向自己的服務商回報時,請隱藏 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?
不能只憑協定名稱下結論。伺服器負載、往返延遲、封包遺失、傳輸方式與出口連線都會影響使用體驗。先保留可用記錄;若確實有兩組可用設定,請在相同網路、相同目標與相近時間條件下分別測試並記錄結果,不能將不同線路的差異全歸因於協定。
訂閱更新後,手動修改的參數又恢復原狀,該怎麼處理?
訂閱記錄可能會依服務商下發的內容重新產生。先確認更新後的參數是否已變更,再確認訂閱仍有效。若需要長期修改,請將不相符的欄位明確回報給自己的服務商;若暫時建立獨立記錄,請保存原始參數並清楚區分名稱,避免日後選錯。
本文僅說明既有設定的填寫與自我檢查。本網站不提供、不販售或推薦節點、訂閱或服務商。遇到帳號有效期限、伺服器連接埠或憑證部署問題,應由使用者自己的服務商確認;修改用戶端欄位無法取代伺服器端修復。