本文適合已匯入節點,並想調整 v2rayN 分流方式的使用者。本文以 Xray 的 routing 設定為例,說明網域集合、IP 集合與出站標籤如何搭配,並提供區域網路直連、中國大陸直連、其餘流量走代理的規則範例,以及自訂網域、全域代理與日誌驗證方法。範例僅涵蓋路由部分,不含節點設定。
一、路由基本概念:流量進入核心後才會套用規則
v2rayN 負責管理設定,Xray 核心則處理送入代理入站的連線。瀏覽器使用系統代理時,相關請求才會送到本機代理連接埠;若程式略過系統代理直接連網,修改 Xray 路由通常不會影響它。桌面版 TUN 是另一種流量接管方式,是否啟用及所需權限,請依目前的平台與客戶端功能確認。
本文使用 Xray 的 JSON 欄位。v2rayN 可管理不同核心,但不同核心的規則格式不能直接混用。Android 上的 v2rayNG 使用 Xray,v2flyNG 使用 V2Fly;即使概念相近,介面位置、產生的設定檔與資料檔版本也不宜直接套用桌面版設定。
-
確認目前使用的核心
開啟「設定」→「參數設定」,確認目前協定所選用的核心;部分版本會將此項標示為「Core 類型」。接著查看啟動日誌中的核心名稱,確認實際執行的是 Xray,不要只依節點協定判斷。
-
備份路由設定
前往「設定」→「路由設定」,先記下目前選用的方案與規則順序。編輯前請備份現有方案;若目前版本提供匯出功能,先匯出再修改,以免覆蓋仍在使用的自訂規則。
-
檢查代理入口
在「設定」→「參數設定」中確認本機監聽連接埠,再檢查瀏覽器或系統代理使用的位址與連接埠是否相同。請勿將遠端節點連接埠填成本機代理連接埠。
-
套用設定並查看日誌
儲存後,在主畫面的路由選項中切換至目標方案,並依目前版本提示套用設定或重新啟動核心。選單位置可能因版本而異,請以產生的設定檔與啟動日誌為準。
二、geosite、geoip 與 outboundTag 的用途
geosite 是網域集合,geoip 是 IP 網段集合。兩者都不是線上查詢服務,而是核心讀取的資料內容。geosite:cn 代表目前資料檔中的 cn 網域集合,不等同於所有以特定後綴結尾的網域;geoip:cn 則會比對目前資料中的中國大陸 IP 網段。
網域規則
- 欄位
domain- 集合寫法
geosite:cn- 完整網域
full:example.com- 網域及其子網域
domain:example.com
請求必須帶有網域,或透過已啟用的相關機制取得可供比對的網域。
IP 與出站規則
- 欄位
ip- 私有位址集合
geoip:private- 地區集合
geoip:cn- 目標出站
outboundTag
出站標籤必須與目前完整設定中的 outbounds 標籤一致,不能只靠名稱猜測。
outboundTag 只用來指定既有出站,不會建立出站。本文以 direct 代表直連出站,以 proxy 代表已設定的代理出站。這些標籤不是 Xray 的保留名稱;若產生的設定檔使用其他標籤,必須一併替換。規則指定 proxy,但沒有同名出站,就無法建立有效的代理路徑。
- 同一條規則的
domain陣列中,多個網域條件只要符合其中一項即可。 - 同一條規則的
ip陣列中,多個 IP 條件也只要符合其中一項即可。 - 同一條規則同時設定
domain、ip、port等不同欄位時,必須同時符合所有已設定條件,而非任選一項。 - 規則依序比對;連線命中前面的規則後,後續規則不會再為該連線重新選擇出站。
三、基本方案:區域網路與中國大陸直連,其餘走代理
常見順序為「區域網路例外 → 自訂例外 → 中國大陸網域 → 中國大陸 IP → 代理兜底」。以下先提供不含自訂例外的基本片段。這是包含 routing 的局部物件,不含 inbounds、outbounds 與節點驗證參數,無法單獨作為完整客戶端設定啟動。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
第一條規則會讓已知的私有目標位址直連,適用於存取路由器、區域網路檔案服務與內網裝置。第二條優先依網域資料判斷。第三條處理直接以 IP 為目標的連線,以及需要依解析結果判斷的網域連線。最後一條明確接管其餘 TCP、UDP 流量,避免依賴完整設定中第一個出站的預設行為。
以網域為主的日常分流,可將 geosite:cn 作為主要依據,再用 geoip:cn 補充分流以 IP 為目標的連線。若內網服務使用企業自訂網域,建議將明確的網域後綴加入直連規則,不要假設私有 IP 規則一定會讓所有內網網域觸發解析。
四、網域解析策略:如何選擇 AsIs 與 IPOnDemand
routing.domainStrategy 決定路由比對何時需要 IP,與 DNS 模組的伺服器清單不同,也不同於直連出站中同名的設定。能否取得正確位址,還取決於 DNS 設定、網路環境,以及請求是否保留網域。只修改一個策略欄位,無法一併解決解析污染、DNS 請求路徑與所有應用程式的流量接管問題。
AsIs:優先比對網域
建議路由階段不會為網域額外解析 IP。使用明確的網域集合與末尾代理兜底,規則行為較容易理解;IP 規則主要處理原本就以 IP 為目標的連線。建立連線時仍可能需要解析,並非完全停止 DNS 查詢。
適用情境:網域規則完整,希望減少路由階段對解析的依賴。
IPOnDemand:按需解析
網域連線遇到需要比對的 IP 規則時,可以觸發解析,再檢查位址集合。基本片段中的第一條就是私有 IP 規則;切換至此策略後,網域請求可能較早觸發解析。
適用情境:確實需要依解析後的 IP 判斷內網或地區歸屬,且已安排好 DNS 路徑。
IPIfNonMatch:未命中才解析
先嘗試比對,未命中時再以解析結果重試。此策略與明確的通配兜底規則有順序上的關係;若要用它判斷地區 IP,必須重新檢視兜底規則與預設出站。
適用情境:了解完整的出站順序,並能逐項驗證未命中時的行為。
若改用 IPOnDemand,且希望特定網域一律走代理,請將這些網域規則移到範圍較廣的 IP 規則之前。否則,網域解析出的位址若符合直連條件,就可能先命中直連規則。檢查時必須一併考量規則優先順序與 DNS 結果。
五、自訂規則:網域例外、連接埠條件與本機集合
自訂規則建議先從少數明確網域著手。以下兩條分別代表「指定主機走代理」與「整個示範網域及其子網域直連」。示範網域僅用於說明語法,請替換成實際管理的網域;勿將 URL 的 https://、路徑或查詢參數填入網域條件。
[
{
"type": "field",
"domain": ["full:api.example.com"],
"outboundTag": "proxy"
},
{
"type": "field",
"domain": ["domain:example.com"],
"outboundTag": "direct"
}
]
這兩條規則應放在可能涵蓋它們的廣泛規則之前,並將範圍較精確的 api.example.com 排在前面。若順序相反,子網域會先命中整個網域的直連規則,後面的精確代理規則就不會生效。若同時涉及內網位址,請明確決定優先保障安全存取邊界,還是優先套用網域例外,不要一律照搬相同順序。
連接埠條件指的是目標連接埠。例如,將 "port": "443" 與網域條件放在同一條規則中,代表「符合該網域且目標連接埠為 443」,而不是該網域的所有連線。只設定連接埠 53 的代理規則,也無法涵蓋所有使用其他傳輸方式的 DNS 流量,更不能取代 DNS 模組設定。
自訂集合的兩種維護方式
- 少量網域:直接維護
domain陣列,並為每個項目使用full:或domain:明確指定範圍。這種方式不依賴額外的集合檔案,修改後也容易核對。 - 大量網域:準備符合核心資料格式的集合檔案。例如
ext:custom.dat:office表示從自訂資料檔讀取 office 集合;它不是「一般文字檔名稱加標籤」,也不是任意遠端規則網址。 - 更新資料:確認目前核心使用的資源目錄、檔案讀取權限與實際集合名稱。若現有 geosite 資料中沒有該標籤,單靠修改規則名稱無法建立集合。
六、全域代理:保留區域網路直連,或讓所有流量走節點
設定「全域代理」前,應先界定涵蓋範圍。v2rayN 的路由方案只控制已進入核心的流量,不代表系統中的所有處理程序都會自動被接管。未受系統代理涵蓋的程式仍可能自行連網;UDP 是否可用,也取決於入站方式、節點協定與伺服器端能力。
| 目標 | 保留規則 | 注意事項 |
|---|---|---|
| 中國大陸與境外分流 | 私有位址直連、中國大陸直連,其餘走代理 | 依賴網域與 IP 資料分類 |
| 公網流量全域代理 | 私有位址直連,其餘走代理 | 內網網域需另外評估 |
| 所有流量走代理 | 僅保留代理兜底規則 | 可能無法存取路由器與內網裝置 |
若只是要暫時排查某個網站,不必立刻刪除所有分流規則。先新增一條精確的網域代理規則,放在涵蓋該網域的規則之前,再測試網站的主網域與 API 網域。單一網頁可能同時連線至登入、靜態資源與下載網域,只修改網址列中的主機名稱不一定涵蓋整個請求流程。
修改節點協定也無法取代路由排查。VMess、VLESS 描述的是代理連線方式;outboundTag 決定目前連線要交由哪個已設定的出站處理。只要代理節點本身可用,遇到規則比對問題時,應先檢查條件與順序,而不是反覆更換協定欄位。
七、驗證流程:依序檢查流量接管、規則命中與出口
出口位址只能說明某次測試請求的路徑,不能證明所有程式都套用相同規則。驗證時請固定測試目標,每次修改一項設定後都建立新連線;瀏覽器可能繼續沿用既有連線的出站,必要時請關閉相關頁面、結束舊連線或重新啟動測試程式。
-
確認流量是否被接管
開啟目標頁面,同時查看客戶端日誌是否出現對應連線。若沒有記錄,請先檢查系統代理、本機監聽連接埠與程式本身的代理設定,暫時不要調整 geosite。
-
確認區域網路連線
使用實際路由器或檔案服務的 IP 測試,例如已確認存在的
192.168.1.1。這只是常見範例,請以本機網路設定為準,之後再另外測試對應的內網網域。 -
確認網域例外規則
針對新增的精確網域建立新請求,檢查日誌中的目標位址與出站標籤。日誌格式會隨核心設定而異;若未顯示完整規則編號,請勿只憑一行連線成功的記錄,就判定命中了哪條規則。
-
確認兜底路徑
選擇一個不在自訂例外中的公網目標,確認是否使用代理出站。提高日誌層級僅供排查,完成後請還原設定;分享日誌前,請移除訂閱網址與節點驗證資訊。
常見狀況與排查方向
- 網域如預期直連,但直接輸入 IP 卻走代理:檢查該 IP 是否確實屬於目標集合,並確認
geoip檔案已成功載入。網域分類與伺服器位址歸屬是不同的判斷。 - 新增規則後仍走舊路徑:確認已選取正確方案、核心已套用設定,並檢查前面是否有涵蓋範圍更廣的規則。接著關閉舊連線再測試。
- 啟動時提示集合不存在:檢查資料檔、集合名稱與資源目錄。先用一條明確的
full:規則驗證路由流程,再處理集合載入問題。 - 日誌顯示命中代理,但網頁仍無法開啟:接著檢查節點連線、DNS 解析結果與伺服器端的存取限制。成功比對只代表已選定出站,不代表後續連線已完成。
穩定的分流方案應能清楚說明每條規則的用途:哪些位址必須直連、哪些網域明確走代理、哪些條件依賴解析,以及最後由哪個出站兜底。先以少量可驗證的規則建立基準,再擴充資料集合,比一次匯入大量重疊規則更容易維護。