本文適合已持有自己的服務商設定或訂閱,並想在 Shadowrocket(小火箭)確認 VMess 與 VLESS 設定的使用者。先釐清協定加密與 TLS 的差異,再逐一檢查位址、連接埠、UUID 和傳輸參數;讀完即可判斷哪些欄位必須依照原始設定填寫,以及匯入成功卻無法連線時,該從哪個環節開始排查。
VMess 與 VLESS:差異在協定層,不是速度等級
VMess 和 VLESS 都是連線設定中的協定類型,不是 Global Routing 模式,也不是方案名稱。伺服器採用哪種協定,Shadowrocket 就必須選擇相符的 Type。將現有 VMess 項目的 Type 改成 VLESS,並沿用相同位址和 UUID,並不能完成轉換;伺服器端的入站協定及相關參數也必須一致。
VMess 包含協定層的驗證與資料保護機制,常見設定會使用 AEAD 驗證;負載的加密方式仍應依照原始設定確認。VLESS 採用較精簡的協定結構,本身不提供負載加密,通常需要透過 TLS 等外層安全機制保護傳輸。因此,「VLESS 沒有協定內加密」不代表「使用 TLS 的 VLESS 連線是明文連線」,也不代表可以任意關閉 TLS。
| 檢查項目 | VMess | VLESS |
|---|---|---|
| 使用者識別碼 | 通常使用 UUID,必須與伺服器設定一致。 | 通常使用 UUID,必須與伺服器設定一致。 |
| 協定層加密 | 具備相關機制與加密選項,請依設定選擇。 | 不提供負載加密,不能套用 VMess 的加密選項。 |
| TLS | 可作為外層安全機制,是否啟用取決於伺服器設定。 | 常用於保護傳輸,參數必須與伺服器設定一致。 |
| 傳輸方式 | 請確認實際設定使用 TCP、WebSocket 等傳輸方式。 | 同樣必須確認傳輸方式,協定名稱不能取代這些參數。 |
| 能否直接互換 | 不能只修改用戶端的 Type;應取得伺服器端對應協定的完整設定。 | |
實際速度也會受到線路壅塞、延遲、封包遺失、伺服器負載及外層傳輸方式影響。位於不同位址的兩條連線,即使分別標示為 VMess 和 VLESS,也不能透過一次測速證明哪種協定必然較快。一般使用者應先確保設定完整、連線穩定,再於條件相近時比較實際連線表現。
UUID、連接埠與 TLS:先釐清各欄位的用途
UUID 是使用者識別碼,不是伺服器位址,也不是 TLS 憑證中的網域名稱。常見 UUID 字串由 32 個十六進位字元與 4 個連字號組成,分成 8-4-4-4-12 五段。格式正確只代表字串結構符合要求,無法證明伺服器承認這個使用者;複製時多了空格、少了一段,或使用已失效的 UUID,都可能導致驗證失敗。
Address 決定連線至哪裡,Port 決定連線至該位址的哪個入口。即使 TLS 常用 443,也不能自行將原始設定中的其他連接埠改成 443。TLS 的 Server Name(SNI)會在交握時指定目標名稱,並用於相關憑證驗證;它可能與連線位址不同,請以自己持有的設定為準。
分層檢查:連線入口與外層傳輸
連線入口與驗證
- Type:確認是 VMess 或 VLESS,不要憑名稱猜測。
- Address、Port:填入伺服器實際監聽的連線入口。
- UUID:完整複製,並逐字與原始設定核對。
- VMess 加密參數:沿用原始設定,不要套用至 VLESS。
傳輸與安全設定
- TLS:啟用狀態須與伺服器設定一致。
- Server Name(SNI):依照原始設定填寫。
- WebSocket:確認 Path 與 Host。
- Flow、ALPN 等附加項目:僅在原始設定要求且目前用戶端支援時填寫。
結論:連線入口與傳輸兩組參數都必須一致;UUID 正確也無法彌補 Path、SNI 或連接埠填錯。
WebSocket 的 Host 與 TLS 的 SNI 屬於不同層:前者用於 HTTP 交握,後者用於 TLS 交握。伺服器可能要求兩者相同,也可能使用不同值。Path 通常以斜線開頭,例如 /example-path;路徑大小寫、查詢參數及結尾斜線都應依照原始設定保留。不要因為它們看起來像網域名稱或網址,就互相替換。
在 Add Server 填寫:保留原始參數,逐層設定並儲存
Shadowrocket 的 Home 用於管理連線項目與連線狀態,Config 用於管理規則設定,Settings 用於調整 App 設定。手動新增 VMess 或 VLESS,請從 Home 的新增入口進入 Add Server,而不是將 UUID 填入 Config 的規則中。不同協定會顯示不同選項,實際欄位請以目前介面與伺服器設定為準。
- 選擇 Type。在 Home → 新增入口 → Add Server 中選擇 VMess 或 VLESS。先確認類型,再填寫其他參數,以免切換類型後漏填協定專屬項目。
- 填寫連線入口與識別碼。複製 Address、Port 和 UUID。請勿在 Address 欄位額外加上
https://或 WebSocket Path;連接埠請另外填寫。 - 確認協定專屬欄位。VMess 的加密方式及舊設定中的 AlterId 必須與原始設定一致;不要將舊式參數任意套用至 AEAD 設定。若 VLESS 設定包含 Flow 等要求,請先確認目前介面是否支援對應值,不要自行猜填。
- 設定傳輸層。原始設定使用 WebSocket 時,才填入對應的 Host 與 Path;若使用 TCP,不要只因為看到某篇教學就改成 WebSocket。
- 設定 TLS。依照原始設定啟用 TLS,並確認 Server Name(SNI)及原始設定明確要求的附加參數。不要藉由關閉憑證驗證來掩蓋名稱不符的問題。
- 儲存並驗證。返回 Home,選取新項目,完成首次連線所需的系統授權,再開啟已知可正常使用的 HTTPS 網頁;成功儲存只代表項目已記錄,不代表驗證與傳輸已成功。
若現有設定包含用戶端未顯示的必要參數,不要以「留白或許能用」作為判斷依據。請先確認原始設定是否適用於目前的 Shadowrocket,再核對 App Store 提供的 App 更新,以及伺服器端提供的欄位說明。每次只修改一個變數,並記錄修改前後的結果,才能判斷問題出在輸入錯誤還是連線環境變化。
已有訂閱與分享連結:如何選擇匯入方式
如果已持有自己的訂閱,請優先保留完整參數。訂閱 URL 是取得一組連線資訊的入口;以 vmess:// 或 vless:// 開頭的分享連結通常代表單一項目。兩者不是相同類型的輸入,不能把訂閱 URL 當成伺服器 Address,也不能把單一分享連結當成可長期更新的訂閱網址。
匯入現有完整設定
建議透過現有訂閱或完整分享連結匯入,減少抄寫 UUID、TLS、Host 與 Path 時遺漏資料的機會。匯入後仍須確認協定類型與重要欄位,不能只看項目名稱判斷。
適用情況:已取得適用於 Shadowrocket 的完整訂閱或分享連結
在 Add Server 手動填寫
逐項輸入已確認的參數,有助於了解各欄位並進行單一變數排查。欄位不完整時,應先確認原始設定,而不是以常見預設值補齊。
適用情況:已有明確參數清單,需要新增單一項目或檢查輸入錯誤
編輯已匯入項目
只修改已確認需要調整的欄位,並保留原始值紀錄。訂閱更新可能重新建立項目或覆寫本機修改,請區分臨時測試與長期設定。
適用情況:排查已知欄位,不變更伺服器協定與驗證資訊
結論:先確認資訊完整,再判斷協定選擇
兩筆設定只有一筆能成功匯入並連線時,請先比較缺少的欄位與伺服器要求,不要立刻歸因於 VMess 或 VLESS 的效能;優先使用與現有伺服器設定完整相符的項目。
新增訂閱時,可在 Home 的新增入口選擇 Subscribe,填入自己已有的訂閱 URL 並儲存。用來辨認格式的假網址為 https://example.com/sub?token=xxxx,不提供可用服務。訂閱中的 token 與單一設定中的 UUID 都可能涉及存取權限,排查時請遮蔽截圖中的這些資訊,不要在公開討論中貼出完整連結。
- 訂閱取得失敗:先確認 URL 是否完整、token 是否仍有效,以及目前網路能否連上訂閱網址。
- 訂閱更新後無法連線:重新開啟項目,確認協定、連接埠、UUID 與傳輸參數是否有變動,避免繼續使用舊截圖中的資料。
- 重複匯入後出現同名項目:確認項目來源與實際欄位;名稱相同不代表位址與驗證資訊也相同。
- 需要長期保留手動測試結果:另存為獨立項目並註明用途,不要將訂閱自動更新視為本機修改的備份方式。
連線失敗如何排查:從入口到規則逐步縮小範圍
排查時應區分「App 連線開關已開啟」、「伺服器連接埠可連線」與「目標網頁可以開啟」這三個層次。系統顯示 VPN 狀態,不代表遠端驗證已成功;延遲數值也不能取代完整的 TLS、WebSocket 與目標網站連線測試。以下狀況可作為排查線索,並非特定錯誤原因的唯一證據。
UUID 看起來沒錯,為什麼還是連不上?
先在 Home 開啟項目,確認 Type、UUID 與 Port 來自同一份設定。接著確認系統時間與驗證資訊是否有效;即使只複製了 UUID,卻沿用另一個項目的傳輸設定,仍可能連線失敗。
有延遲數值,網頁卻一直無法開啟?
先選取要測試的項目,暫時將 Global Routing 設為 Proxy,再開啟同一個已知可正常使用的 HTTPS 網頁。若仍然失敗,繼續檢查 TLS 與傳輸設定;若 Proxy 可以使用、Config 卻不行,再檢查規則及其引用的策略。測試後請恢復原本模式。
日誌顯示 TLS 交握或憑證錯誤,該檢查哪裡?
返回項目編輯頁,確認 TLS、Server Name(SNI)與 Address,並檢查系統日期。名稱不符、憑證有效期限及伺服器設定都可能造成錯誤;不要直接關閉憑證驗證,應先確認伺服器端的要求。
WebSocket 出現 HTTP 錯誤,是 UUID 的問題嗎?
HTTP 錯誤可能發生在協定驗證之前。先確認傳輸方式、Host、Path 與 TLS,確保要求送達正確入口。404 通常表示路徑或入口可能不符,但仍須搭配日誌與伺服器設定判斷,不能只憑狀態碼下結論。
訂閱更新後,之前手動修正的參數又變了?
重新確認更新後的項目與現有訂閱內容,判斷本機修改是否遭到覆寫。將臨時測試另存為獨立項目,並記錄具體差異;長期使用仍應以完整且有效的原始設定為準。
Global Routing 的 Config 會依據目前的規則設定處理連線,Proxy 用於讓受該模式處理的連線透過代理,Direct 則用於直接連線;Scene 涉及情境選擇,不是第四種協定。若只有在 Config 模式下連線異常,應檢查 Config 中 DOMAIN-SUFFIX、GEOIP、IP-CIDR 與 FINAL 的順序及策略目標,而不是重新更換 UUID。
排查連線自動開啟或恢復時,也要檢查 Settings → On Demand 中的觸發條件。On Demand 決定何時依條件發起連線,不會修正 VMess 或 VLESS 的驗證欄位。為了讓測試條件一致,請先記錄現有設定,並確認這次要測試的是手動連線還是自動觸發,避免混淆兩種問題。
儲存設定前的最後確認
項目能否使用,取決於用戶端與伺服器端的協定、驗證、傳輸及安全參數是否一致。VMess 或 VLESS 的選擇首先由現有伺服器決定;只有伺服器提供兩種完整設定時,才適合在相同網路、相同目標及時間相近的條件下比較實際使用情況。單次延遲測試或項目名稱不足以說明差異。
- Type 與原始設定一致;VMess 和 VLESS 不能透過改名稱或改 Type 互相轉換。
- Address、Port、UUID 資料完整,連接埠沒有因習慣而改成 443。
- TLS、SNI、WebSocket Host 與 Path 均依照原始設定填寫。
- 匯入後已實際開啟測試網頁,並區分協定問題與 Config 規則問題。
- 測試過程未洩露完整訂閱 URL、token 或 UUID,臨時修改也已記錄。
Shadowrocket 是閉源商業 App,主要適用於 iPhone 與 iPad,唯一取得管道為 App Store。開發者名稱應為 Shadow Launch Technology Limited,App ID 為 932747118;一次性購買用戶端與使用者已有的線路服務是兩回事。系統需求與一般購買適用性請以 App Store 頁面標示為準,購買 App 不會自動產生可用的 VMess 或 VLESS 設定。