VMess
VMess 是 Project V 生態系中的代理協定,透過使用者識別碼等參數進行驗證,並具備協定本身的資料防護機制。匯入時應核對使用者 ID、伺服器端連接埠及傳輸設定,不能只確認位址相同。
舊設定中可能會出現與歷史驗證機制相關的選項;不要為了套用舊範例而任意修改參數,應先確認伺服器端設定與目前核心的相容要求。
REFERENCE / 術語與欄位
從連線協定到設定欄位,分六類概念查閱。先釐清用戶端、核心、協定與安全層的差異,再找出對應設定;名稱相似不代表欄位可以互換。
01 / PROTOCOL & TRANSPORT
協定決定代理請求與驗證格式,傳輸則決定資料的承載方式;兩者不是同一類選項。
VMess 是 Project V 生態系中的代理協定,透過使用者識別碼等參數進行驗證,並具備協定本身的資料防護機制。匯入時應核對使用者 ID、伺服器端連接埠及傳輸設定,不能只確認位址相同。
舊設定中可能會出現與歷史驗證機制相關的選項;不要為了套用舊範例而任意修改參數,應先確認伺服器端設定與目前核心的相容要求。
VLESS 是以 UUID 識別使用者的輕量代理協定,本身不提供負載加密。實際連線是否受到傳輸保護,取決於 TLS、REALITY 等安全層及整體部署方式。
設定中的 encryption、flow 與傳輸安全選項各有用途;其中 flow 須由伺服器端與核心配套支援,不能當成通用選項任意啟用。
Trojan 是通常搭配 TLS 使用的代理協定,主要以密碼進行驗證,而不是使用 VMess、VLESS 的使用者 ID。匯入節點後,須一併檢查密碼、目標連接埠、伺服器名稱與傳輸設定。
即使不同協定使用相同的位址與連接埠,驗證格式也不相同;只把協定下拉選單改成 Trojan,無法完成有效的協定轉換。
傳輸方式定義代理資料如何承載於網路連線,常見設定類型包括 TCP、WebSocket、gRPC 等。路徑、Host 與服務名稱各屬於不同傳輸方式的參數,不應跨類型照搬。
用戶端顯示名稱與 JSON 值可能因版本而異;檢查設定時應一併查看 streamSettings.network 與該類型的設定物件,並確認兩端相容。
02 / CORE & CLIENT
圖形介面負責管理設定,核心負責處理連線。介面能匯入某種連結,不代表執行中的核心支援所有欄位。
Xray 是由 Xray 專案維護的代理核心,負責協定處理、路由選擇與網域名稱解析等工作。REALITY 等功能屬於其生態系能力,能否使用仍取決於實際核心版本與參數組合。
排查連線問題時,須分別確認用戶端版本與核心版本;更新圖形介面後,也應在用戶端資訊或記錄檔中確認實際啟動的核心。
V2Fly 是延續 V2Ray 開發的社群專案,維護 v2ray-core。它與 Xray 生態系有所關聯,但後續發展的協定擴充、設定格式與欄位支援並不完全相同。
將設定從一種核心移轉至另一種核心時,應逐段確認支援情況;檔案同樣名為 config.json,不代表內容可以直接通用。
圖形介面用戶端提供節點管理、訂閱匯入、路由編輯與連線控制介面。v2rayN 適用於桌面平台;v2rayNG 與 v2flyNG 適用於 Android,後者可作為採用 V2Fly 核心的替代選擇。
用戶端可能會依介面選項產生執行設定,因此直接修改產生的檔案,可能在下次啟動時被覆寫。建議優先使用用戶端支援的設定介面或自訂設定方式。
TUN 模式透過虛擬網路介面接收流量,通常比只設定系統代理涵蓋更多應用程式,但實際範圍取決於系統路由、權限與用戶端實作。系統代理主要影響遵循相關代理設定的應用程式,兩者不能直接視為相同。
啟用 TUN 後仍須檢查 DNS 與排除規則;若無法連線,應配合虛擬介面狀態與路由變化進行排查,而不是一再切換節點。
03 / CONFIG STRUCTURE
從資料流理解 JSON:入站接收請求,路由選擇去向,出站建立連線,策略控制連線行為。
inbounds 是入站陣列,用來定義核心從何處接收流量。常見的本機 SOCKS 入站會設定 listen、port、protocol 與 settings。
127.0.0.1 通常只允許本機存取;修改監聽範圍後,也須考量驗證、防火牆與實際使用需求。入站連接埠是應用程式連至本機代理的連接埠,不是遠端伺服器的連接埠。
outbounds 是出站陣列,描述連線如何送出,可包含代理出站、直連出站及阻斷出站。每個出站的 tag 可作為路由規則引用的識別標記。
例如,規則中的 outboundTag 若設為 direct,就必須存在具有相同標記的出站;這個名稱只是自訂標記,不會自動建立直連行為。
streamSettings 用於設定傳輸方式與安全層,常見於代理出站。network 用來選擇傳輸類型,security 用來選擇適用的安全機制,其他物件則填寫對應參數。
只複製這個物件無法組成完整節點,因為驗證資訊與伺服器位址通常位於協定的 settings 中。欄位名稱與可用組合應以目前核心文件為準。
policy 是核心的連線策略設定,可依使用者等級等條件設定交握逾時、連線閒置時間及統計行為。這裡的「策略」不是「特定網站走某個出站」的分流規則。
連線頻繁中斷時,可以檢查逾時設定,但不宜直接調高所有數值;應先從記錄檔判斷中斷發生於交握、傳輸或閒置階段,再修改相關欄位。
04 / ROUTING & DNS
路由決定連線去向,解析則決定網域名稱對應的位址。檢查分流結果時,兩條路徑都要確認。
路由規則依網域名稱、IP、連接埠、入站標記等條件選擇出站,這個過程通常稱為分流。規則一般由上而下檢查,由第一條符合的規則決定連線去向,因此應將具體規則排在較廣泛的規則之前。
同一條規則中的不同條件欄位通常都必須符合;同一欄位中的多個值通常代表可供比對的選項。也應明確設定或確認未符合任何規則時的預設行為,不能只檢查符合規則的情況。
查看路由規則 →GeoIP 是依 IP 位址集合比對路由的資料分類機制,常見寫法如 geoip:private。實際集合內容由所使用的資料檔案決定;標籤本身不是即時地理定位查詢。
當目標一開始以網域名稱表示時,能否比對 IP 規則也與解析策略有關。資料庫或網域解析結果若有變化,同一條規則也可能產生不同的比對結果。
GeoSite 是依網域名稱集合比對的資料分類機制,寫法如 geosite:cn。它與 GeoIP 的差異在於比對對象:前者是網域名稱,後者是 IP 位址集合。
標籤是否存在及涵蓋哪些網域,取決於具體資料來源與版本;使用前應確認用戶端載入的資料檔案。若要明確處理單一網站,可使用更精確的網域規則,不必依賴整組分類。
DNS 負責將網域名稱解析為位址;routing.domainStrategy 則決定路由比對過程中何時嘗試解析網域名稱。以 IPIfNonMatch 為例,只有網域規則未符合時,才會嘗試透過解析結果繼續比對 IP 規則。
這個欄位不代表「所有應用程式都使用核心 DNS」。系統、瀏覽器與代理核心可能各自進行解析;出站中名稱相同或相近的欄位,也須依所在位置理解。
查看 DNS 設定 →FakeDNS 透過合成位址與網域名稱之間的對應關係,讓後續連線能還原目標網域資訊。這些位址主要用於內部對應,不應解讀為目標網站實際的公網伺服器位址。
這項功能需要解析入口、流量接管與網域還原等環節相互配合,單獨新增一個設定物件不一定會生效。切換模式後若仍使用舊的解析快取,也應一併檢查快取與實際流量路徑。
DNS 洩漏是指查詢未依預期的解析路徑進行,而交由其他解析器處理的情況。這描述的是解析路徑偏離,不能只憑解析器名稱或所在地判斷。
排查時應分別檢查系統 DNS、瀏覽器的加密 DNS、用戶端接管方式與核心 DNS 出站。網頁請求經過代理,不代表請求之前的網域查詢也走相同路徑。
05 / SUBSCRIPTION & NODE
訂閱管理的是一組參數,節點儲存的是連線設定。匯入成功與連線成功是兩個不同的檢查階段。
訂閱是透過網址取得並更新節點集合的管理方式,並非代理協定本身。用戶端必須支援相應的訂閱格式,才能將內容轉換為可用的節點項目。
更新時通常會重新讀取遠端內容,手動編輯的節點參數是否保留則由用戶端決定。訂閱網址可能包含存取憑證,應避免將它放進截圖、公開記錄檔或分享文字中。
節點是用戶端中儲存的一組連線參數,通常包括伺服器位址、連接埠、代理協定、驗證資訊與傳輸設定。單一節點項目不一定對應一台獨立的實體伺服器,顯示名稱也不會用於協定驗證。
位址能夠解析,只表示網域解析已有結果;若要建立連線,還需要連接埠可連通、驗證正確,且傳輸與安全層參數彼此相容。
分享連結會將節點參數編碼為可匯入的文字,QR Code 則是承載這段文字的一種形式,也可能包含訂閱網址。掃描匯入不是另一種連線協定,最後仍須還原為用戶端設定。
不同用戶端可辨識的連結擴充欄位可能不同;匯入後應檢查傳輸、安全層與伺服器名稱。QR Code 可能包含驗證資訊,分享前應先確認內容及分享對象。
真實連線延遲通常指用戶端透過代理連線存取測試目標所需的時間;是否包含解析、交握與等待回應,取決於用戶端實作。這與只測試 TCP 連線建立時間的延遲指標不同。
比較結果時應使用相同的測試目標與方式;延遲較低不代表持續下載速度較快,測試逾時也可能是目標網站或解析環節造成。
06 / SECURITY LAYER
驗證識別、憑證驗證與傳輸防護分別處理不同問題。遇到交握錯誤時,應先判斷問題所在層次。
TLS 為傳輸連線提供加密與身分驗證;憑證驗證涉及信任鏈、有效期限、系統時間與網域名稱比對。能連上伺服器位址,不代表憑證一定符合用戶端的驗證要求。
遇到憑證錯誤時,應先檢查系統時間、伺服器名稱與憑證部署。啟用 allowInsecure 會放寬憑證驗證,不應作為處理所有 TLS 錯誤的預設方法。
REALITY 是 Xray 生態系中的傳輸安全機制,常與 VLESS 等協定搭配使用,但它不是與 VLESS 同層的代理協定。使用時須由雙方核心支援,並設定相互符合的驗證與交握參數。
用戶端通常需要伺服器名稱、公鑰或相關驗證參數、短 ID 等資訊,實際欄位名稱會因版本而異。不要將伺服器端私鑰填入用戶端,也不要把一般 TLS 設定直接當成 REALITY 設定。
SNI 是 TLS 交握中的伺服器名稱指示;serverName 則是用戶端設定中與該名稱及憑證驗證相關的欄位。實際連線的 address 可以是 IP 位址,伺服器名稱仍可使用網域名稱。
這兩個欄位不一定要始終相同,但必須符合伺服器端的部署要求。伺服器名稱也不同於 WebSocket 的 Host 或 HTTP 要求標頭;修改其中一項不會自動同步其他項目。
UUID 是 VMess、VLESS 等協定使用的使用者識別碼,用戶端填寫的值應與伺服器端授權項目一致。它用於身分識別,不是傳輸加密演算法,也不能取代 TLS 或 REALITY 的相關參數。
格式正確只代表該值符合語法,不表示伺服器端已授權;重新產生 UUID 後,須同步更新兩端設定。公開分享節點截圖時,應遮蔽使用者識別碼及其他驗證資訊。