VMess
Project V 生態系中的代理協定,以 UUID 識別使用者,並具備自身的資料保護機制。目前常見設定採用 AEAD,不應任意增加舊教學中的 alterId,現代設定通常設為零。驗證失敗時,除了核對 UUID 與傳輸參數,也應確認裝置時間是否正確。
"protocol": "vmess"
V2RAY / TERMINOLOGY
協定、核心、設定欄位與診斷指標。依設定所屬層次查找,避免混淆流量接管方式、代理協定與傳輸安全機制。
本頁收錄 30 個常用術語。先了解名稱的意義,再確認用戶端實際使用的核心與版本;名稱相同的開關不一定會產生相同設定,範例欄位也不代表可直接連線的完整檔案。
01 / PROTOCOLS
代理協定規定驗證與資料交換方式;傳輸方式負責承載連線;TLS、REALITY 等機制則處理傳輸安全。設定時應分別核對這些層次。
Project V 生態系中的代理協定,以 UUID 識別使用者,並具備自身的資料保護機制。目前常見設定採用 AEAD,不應任意增加舊教學中的 alterId,現代設定通常設為零。驗證失敗時,除了核對 UUID 與傳輸參數,也應確認裝置時間是否正確。
"protocol": "vmess"
以 UUID 驗證的輕量代理協定,不應將它視為 VMess 的另一種加密選項。常見部署會透過 TLS 或 REALITY 等外層機制保護傳輸,安全層與傳輸層參數都必須核對。部分新功能受核心版本限制,不能只憑連結前綴判斷用戶端是否相容。
"protocol": "vless"
通常透過 TLS 連線運作的代理協定,常使用密碼進行身分驗證。密碼負責驗證,憑證驗證則用來確認 TLS 對端的身分,兩者不能互相取代。遇到憑證錯誤時,應核對伺服器名稱、憑證有效期限與本機時間,而不是直接關閉驗證。
"protocol": "trojan"
透過約定的加密方法與金鑰保護代理流量的協定。節點通常包含伺服器位址、連接埠、加密方法與密碼。不同方法對金鑰格式與核心支援的要求各異,尤其不可混用傳統方法與 2022 系列的參數。協定名稱相同,不代表任意版本的用戶端都能讀取該節點。
"protocol": "shadowsocks"
Xray 生態系中的傳輸安全機制,常與 VLESS 搭配使用,並非獨立的代理協定。用戶端通常須核對伺服器名稱、公鑰、shortId 與指紋等參數;欄位名稱應以目前使用的核心格式為準。它不等同於一般 TLS,不能只替換安全類型名稱就完成設定。
"security": "reality"
Xray 中常與 VLESS 搭配的流量控制方案,用於最佳化符合條件的 TLS 流量處理,減少不必要的重複封裝與加密負擔。透過 flow 選擇;它不是傳輸協定名稱,也不保證所有要求都會更快。用戶端與伺服器端必須使用相容的流量控制、安全層與傳輸組合。
"flow": "xtls-rprx-vision"
02 / CORE & CLIENT
介面負責管理,核心負責執行。確認功能是否可用時,須同時檢查用戶端支援情況與實際啟動的核心。
以 V2Ray 為核心發展出的模組化網路代理專案與生態系概念,強調組合使用接入、傳輸與路由等功能。V2Ray、V2Fly、Xray 與圖形化用戶端各屬不同層次,不應視為同一軟體的不同名稱。閱讀教學時,先確認內容談的是生態系背景、核心設定,還是介面操作。
以 V2Ray 程式碼為基礎發展的代理核心,負責建立連線、處理協定、選擇路由與處理 DNS 等工作。設定 REALITY 與 Vision 等功能時,須確認 Xray 的實際支援範圍。用戶端顯示某個選項,不代表目前隨附或手動選用的核心一定能執行。
持續維護 V2Ray 相關核心實作的社群專案,是 Project V 生態系的重要組成部分。V2Fly 與 Xray 有共同的技術背景,但後續功能、版本更新節奏與設定格式各有差異。移轉設定時,應依目標核心的文件逐項核對,不可將某一方專屬欄位原封不動加入另一方。
提供節點清單、訂閱更新、路由設定與執行記錄介面的應用程式,例如 v2rayN、v2rayNG 與 v2flyNG。用戶端通常會產生設定並呼叫核心,介面上的名稱不一定與 JSON 欄位完全相同。選擇應用程式時,先確認作業系統與節點所需功能,再前往取得用戶端頁面選擇合適的下載方式。
03 / CONFIGURATION
通常可依「接收流量、選擇出口、建立連線」的順序理解一份設定。欄位所屬層次比記住欄位拼法更重要。
以物件、陣列與鍵值描述核心執行參數的文字格式;鍵名與字串使用雙引號,布林值寫作 true 或 false。嚴格的 JSON 不接受註解或結尾多餘的逗號,部分工具的寬鬆解析行為不能當作通用規則。語法正確後,仍須檢查欄位是否適用於目前的核心與設定版本。
描述核心如何接收應用程式流量,常見內容包括監聽位址、連接埠與 SOCKS 或 HTTP 等接入協定。本機監聽連接埠不是遠端伺服器連接埠,兩者用途不同。若僅供本機使用,通常會綁定迴路位址;開放給區域網路前,應先確認存取控制與裝置防火牆設定。
"listen": "127.0.0.1"
描述核心如何向外建立連線,可設定代理、直連與封鎖等不同出口。出站的 tag 是供路由引用的標籤,不是協定名稱;名為 proxy 的標籤本身不會自動建立代理連線。排查規則時,應確認引用的標籤與目標出站完全相同。
"outboundTag": "proxy"
用來描述連線逾時、使用者等級相關限制與部分統計開關等執行策略,具體項目因核心而異。此處的策略不等於將某個網站導向特定出口;後者屬於 routing。調整逾時前,應先從記錄判斷失敗環節;盲目延長等待時間無法解決驗證或路由錯誤。
04 / ROUTING & DNS
分流需要能辨識目的地資訊。網域、解析結果與流量接管路徑不一致時,即使規則正確也可能無法符合。
根據網域、IP、連接埠、網路類型或入站標籤等條件,為要求選擇出站。常見欄位規則會依清單順序比對,由第一條符合的有效規則決定出口;同一規則中的不同條件通常都必須符合。排查時先檢查規則順序,再核對 outboundTag,不要只檢查網域拼法。
"type": "field"
GeoIP 依 IP 位址集合分類,GeoSite 則依網域集合分類,常用來減少重複撰寫路由規則。分類名稱、收錄內容與更新情況取決於實際載入的資料檔案,不能只憑名稱推斷涵蓋所有目標。網域集合與位址集合也不能互換;未符合規則時,須分別檢查解析結果與資料來源。
"ip": ["geoip:private"]
依規則讓不同要求使用不同出口,例如指定網域走代理、區域網路位址直連。系統代理決定部分應用程式流量是否進入用戶端,分流則決定進入後的要求走哪條路徑,兩者不是同一個開關。用戶端顯示的模式名稱只是規則組合的入口,應配合實際產生的路由理解。
DNS 會將網域名稱解析為位址;路由中的 domainStrategy 則決定比對規則時何時嘗試解析。IPIfNonMatch 通常表示網域未符合規則後,再嘗試以解析所得的 IP 比對;IPOnDemand 則可能在遇到 IP 規則時觸發解析。其他設定層的同名欄位可能有不同意義,必須連同所屬物件一起閱讀。
"domainStrategy": "IPIfNonMatch"
先回傳映射位址給應用程式,再由核心透過映射還原原始網域名稱,以利後續處理與路由判斷。這些位址不是目標網站的真實位址,因此必須搭配 DNS 要求、流量接管與入站識別。若只啟用單一選項,卻未接管對應流量,應用程式可能取得映射位址後仍無法建立連線。
指解析要求未依預期的 DNS 路徑送出,例如預期由用戶端處理,卻仍交由系統或瀏覽器另行解析。判斷時須分別檢查系統 DNS、瀏覽器加密 DNS、應用程式快取與用戶端內建解析,而不是只查看一次測試頁面。是否偏離預期,應以明確的網路策略為判斷依據。
透過虛擬網路介面與路由設定接收 IP 流量的接管方式,適合處理不遵循系統代理設定的應用程式流量。TUN 不是代理協定,也不能取代遠端節點或 DNS 設定;實際運作可能還需要用戶端呼叫額外元件。啟用後若區域網路存取異常,應檢查路由排除項目、權限與 DNS 接管設定。
05 / SUBSCRIPTIONS
訂閱是取得內容的入口,節點是連線參數,分享連結則是參數的文字表示。成功匯入不代表連線已驗證可用。
用來取得一組節點或設定內容的網址,用戶端可透過更新重新讀取內容。回應內容可能是編碼後的分享連結清單,也可能是原生設定或其他格式,須與匯入方式相符。網址可能包含存取憑證,應妥善保管;在截圖、記錄與公開求助內容中都應遮蔽。
用戶端中一組遠端連線參數的顯示單位,通常包含伺服器位址、連接埠、驗證資訊與傳輸安全設定。節點名稱由內容提供者或使用者填寫,名稱中的地區或線路文字不代表實測效能。排查連線時應比對實際位址與參數,而不是只比較顯示名稱。
分享連結會將單一節點參數整理成可匯入的文字,例如以 vmess:// 或 vless:// 開頭的內容。常見的 VMess 分享格式會以 Base64 編碼參數物件;VLESS 連結通常透過位址與查詢參數表示設定。Base64 只是編碼,不具備加密保護;即使成功解碼,也不代表欄位一定相容。
解析並轉換不同訂閱或設定格式中的欄位,不只是更改檔案副檔名。目標格式無法表示的選項可能遭到捨棄,目標核心不支援的功能也不會因轉換而出現。轉換後應逐項核對安全層、flow、伺服器名稱與傳輸參數;處理敏感內容時,優先選擇本機方式。
06 / MEASUREMENT
先確認測試涵蓋哪一段連線,再比較數值。連接埠可連通、代理要求成功與持續下載速度,代表不同結果。
作業系統提供給應用程式的代理入口設定,通常指向用戶端的本機 HTTP 或 SOCKS 監聽位址。只有遵循此設定的應用程式才會使用對應入口,因此開啟系統代理不代表接管所有流量。關閉用戶端後,若瀏覽器無法連線,應檢查是否仍保留指向已停止監聽連接埠的代理設定。
延遲是特定操作所需的時間,必須說明測量對象;一般 ping 通常測量 ICMP 往返時間,TCPing 通常測量與目標連接埠建立 TCP 連線所需的時間。TCPing 成功只能表示在測試條件下連接埠可連通,無法證明代理驗證或 TLS 參數正確。某種探測沒有回應,也不一定代表所有連線方式都無法使用。
透過代理向測試位址發出要求所測得的耗時,涵蓋範圍通常比單純連接埠探測更接近實際使用情況。結果會受 DNS、交握、連線重用、伺服器回應與測試位址影響,計時方式則依用戶端實作而定。比較節點時,應使用相同測試位址並選擇相近時段,再配合實際應用程式的要求判斷。
透過傳輸測試資料,估算單位時間內接收的有效資料量;這與一次要求需要等待多久是不同指標。測試來源容量、網路壅塞、裝置效能與並行方式都會影響結果,延遲低不一定代表吞吐量高。測速會消耗流量,建議先檢查連線與延遲,再對少數候選節點進行下載測試。
從連線初始資料辨識協定或網域線索,供路由等後續環節使用,例如讀取可見的 HTTP 主機名稱或 TLS 交握資訊。這不是完整解密,也無法從所有應用程式流量還原目標網域名稱。是否改寫目標、僅供路由使用或搭配 FakeDNS,須依具體選項判斷,不能只看總開關。
"sniffing": {"enabled": true}