本文適合已能正常連線至節點、準備調整路由策略的使用者。最終設定會依照「攔截廣告、區域網路直連、境內網域直連、境內 IP 直連、其餘流量走代理」的順序處理流量,並透過核心記錄、指定代理埠與網域解析結果逐項驗證。
先確認分流目標與比對流程
分流重點
路由分流不負責建立 VLESS、VMess 等代理連線,只會在請求進入核心後決定應使用哪個出站。節點位址、連接埠、傳輸層與驗證參數仍屬於代理出站設定;路由規則只會引用已存在的出站標籤。混淆這兩個層次,是「節點能連線但規則未生效」最常見的原因之一。
分流重點
本例採用三個出站標籤:proxy 對應目前的代理節點,direct 對應 freedom 直連出站,block 對應 blackhole 攔截出站。標籤區分大小寫,規則中的 outboundTag 必須與出站中的 tag 完全一致。
分流重點
V2Ray 與 Xray 會依照陣列順序檢查路由規則。請求命中第一條符合條件的規則後,就會停止繼續比對,因此規則不是「越多越優先」,而是「越前面越優先」。廣告網域應放在境內網域之前,否則同時屬於兩個集合的網域可能會先被直連規則處理。
攔截廣告
- 比對來源
- geosite:category-ads-all
- 出站標籤
- block
- 建議位置
- 第 1 條
先攔截,再判斷地域,避免廣告網域被境內規則提前直連。
區域網路直連
- 比對來源
- geoip:private
- 出站標籤
- direct
- 典型位址
- 192.168.0.0/16
保留路由器、檔案服務與其他內網設備的本機存取路徑。
境內資源直連
- 網域集合
- geosite:cn
- IP 集合
- geoip:cn
- 出站標籤
- direct
將網域與 IP 分成兩條規則,方便從記錄判斷實際命中的階段。
其餘流量走代理
- 比對網路
- tcp,udp
- 出站標籤
- proxy
- 建議位置
- 最後一條
兜底規則必須放在最後,若提前放置,會攔截後續所有 TCP 與 UDP 規則。
geosite 與 geoip 分別比對什麼
分流重點
geosite 是網域集合。請求保留網域資訊時,核心可以直接判斷網域是否屬於 geosite:cn 或 geosite:category-ads-all。集合中的項目可能是完整網域、子網域規則或關鍵字規則,實際涵蓋範圍取決於用戶端隨附的資料檔版本。
分流重點
geoip 是 IP 網段集合。應用程式直接連線至 IP、網域規則未命中後執行解析,或流量入口已只能看到目標 IP 時,核心才有機會使用 geoip:cn 判斷地域。它無法根據網站名稱推測歸屬,只會比對目標位址是否落在資料檔記錄的網段內。
| 比對方式 | 輸入物件 | 範例 | 適合處理 |
|---|---|---|---|
| geosite | 網域 | geosite:cn |
依網站類別或地域維護的網域集合 |
| geoip | IPv4 或 IPv6 位址 | geoip:cn |
直連 IP 請求與解析後的位址判斷 |
| domain | 明確的網域規則 | domain:example.com |
少量需要固定覆寫的網站 |
| ip | 明確的網段 | 192.168.0.0/16 |
內網、專用服務或自有網段 |
結論:優先保留網域,再用 IP 補充判斷
只寫 geoip:cn 會讓網域請求依賴解析結果,不僅增加一次判斷成本,也可能受到解析位置影響;先用 geosite:cn 處理明確網域,再讓 geoip:cn 接手其餘境內位址,規則會更容易說明與排查。
完整路由設定與規則順序
分流重點
以下 JSON 展示路由與三個出站的最小組合,可作為進階設定的結構參考。實際使用時仍需保留原設定中的入口、DNS、記錄以及代理伺服器參數,不應直接用這段內容覆蓋整份用戶端設定。
分流重點
將 domainStrategy 設為 IPIfNonMatch:核心會先檢查網域規則;網域未命中時,再解析目標網域並嘗試套用 IP 規則。如此既能使用 geosite,也能讓 geoip 作為第二層判斷。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": [
"geosite:category-ads-all"
],
"outboundTag": "block"
},
{
"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"
}
]
},
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": []
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
}
]
}
分流重點
範例中的空 vnext 只表示代理節點參數應由現有訂閱設定提供,不能直接作為可連線節點使用。在 v2rayN 中,匯入訂閱會產生完整的代理出站;手動維護路由時,應引用用戶端產生的代理標籤,而不是刪除伺服器資訊後照抄空陣列。
- 先放置需要明確攔截或覆寫的規則,例如廣告網域與自訂網域。
- 接著放置
geoip:private,確保 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 等私有位址保持直連。 - 隨後依序放置
geosite:cn與geoip:cn,分別處理境內網域與境內位址。 - 最後使用
network: tcp,udp將流量送往proxy,作為未命中請求的兜底規則。
在 v2rayN 中套用設定
分流重點
以下以 v2rayN 7.10.x 的介面配置為例,先在「設定」→「參數設定」中確認本機監聽連接埠與記錄層級。常見設定會使用 SOCKS 連接埠 10808、HTTP 連接埠 10809,但升級或移轉後的實際連接埠可能不同,驗證指令必須使用目前介面顯示的數值。
分流重點
路由入口通常位於「設定」→「路由設定」。建立規則集後,依序加入廣告網域、私有 IP、境內網域、境內 IP 與最終代理規則,再將該規則集設為目前使用的規則。不同 7.x 小版本的按鈕位置可能調整,但規則名稱、順序與出站標籤的核對方式不變。
分流重點
訂閱更新可能會重新產生節點,但通常不會代替使用者修正自訂路由。更新訂閱後,應確認目前啟用的規則集沒有切回預設方案,並檢查所選節點仍對應可用的代理出站。修改完成後需要重新啟動核心;只儲存規則而未重新載入核心,不會改變目前正在執行的路由狀態。
- 在伺服器清單中選擇可用節點,並執行一次實際連線延遲測試。
- 開啟系統代理,確認瀏覽器流量進入 v2rayN 的本機監聽連接埠。
- 進入「設定」→「參數設定」,記錄 HTTP、SOCKS 與區域網路監聽開關的實際值。
- 進入「設定」→「路由設定」,確認目前使用的規則集與五條規則的排列順序。
- 儲存後重新啟動核心,觀察記錄是否成功載入 geosite 與 geoip 資料。
驗證境內外分流是否真正生效
分流重點
「網頁能開啟」只能證明連線基本可用,不能證明流量使用了預期的出站。驗證時應同時觀察請求目標、核心記錄中的規則命中結果與最終出站標籤。建議先將記錄層級暫時調整為 info,檢查完成後再恢復原設定,避免長期累積大量記錄。
分流重點
第一輪使用瀏覽器測試:分別造訪一個明確屬於境內網域集合的網站、一個需要代理的網站,以及路由器管理位址。預期結果是境內網站命中 direct、其餘網站命中 proxy,路由器位址則透過 geoip:private 直連。
分流重點
第二輪避開瀏覽器擴充功能與快取,直接指定 v2rayN 的 HTTP 代理連接埠發出請求。若目前 HTTP 連接埠為 10809,可以在 Windows、macOS 或 Linux 的終端機執行下列指令;測試位址應替換為自己能查看存取記錄的 HTTP 服務。
curl --proxy http://127.0.0.1:10809 https://your-test-endpoint.example/
curl --proxy http://127.0.0.1:10809 -I https://your-test-endpoint.example/
nslookup your-test-endpoint.example
分流重點
檢查時不要只比較回傳 IP。部分網站使用分散式節點,同一網域可能依解析位置回傳不同位址。更可靠的依據是 v2rayN 核心記錄中顯示的目標網域、目標連接埠,以及對應的 direct、proxy 或 block 出站。
境內網站仍然走代理怎麼辦?
分流重點
先確認 geosite:cn 位於最終代理規則之前,再檢查記錄中是否保留了目標網域。若入口只提供目標 IP,則繼續確認 domainStrategy 與 geoip:cn 是否已成功載入。
區域網路位址突然無法開啟怎麼辦?
分流重點
檢查 geoip:private 是否指向 direct,並確認它排在 network: tcp,udp 兜底規則之前。存取 192.168.1.1 時,記錄中不應顯示 proxy。
廣告規則導致頁面元件缺失怎麼辦?
分流重點
先暫時停用 category-ads-all 後重新測試。確認是誤攔截後,為必要網域增加一條位置更前、指向 direct 的規則,不要把整個廣告規則移到境內直連之後。
規則已儲存但記錄沒有變化怎麼辦?
分流重點
確認啟用的是剛編輯的規則集,然後重新啟動核心。若 v2rayN 同時啟用了預先定義的路由方案,請檢查目前方案是否覆蓋了自訂規則。
UDP 請求沒有依規則分流怎麼辦?
分流重點
確認兜底規則的 network 同時包含 tcp,udp,並檢查目前代理節點的傳輸設定是否支援目標 UDP 流量。命中路由不代表對應出站一定能承載該請求。
常見偏差與維護策略
分流重點
分流結果會隨著網域歸屬、服務部署與規則資料更新而變化。某個境內服務可能使用境外位址,某個境外品牌也可能在境內部署節點,因此 geosite 與 geoip 提供的是規則資料層級的分類,不是對業務歸屬的即時判斷。對於工作系統、自有服務等明確目標,明確指定網域的規則通常比地域集合更穩定。
分流重點
自訂覆寫規則應少而明確。需要強制直連時,將具體網域規則放在廣告與地域規則之前,並指向 direct;需要強制代理時,同樣放在地域直連之前,並指向 proxy。每增加一條覆寫規則,都應記錄用途,避免幾個月後只剩下無法說明的例外清單。
- 核心或用戶端升級後,重新檢查 geosite 與 geoip 資料是否能正常載入。
- 訂閱更新後,確認目前使用的節點與自訂路由方案沒有被切換。
- 新增規則時,先測試單一網域,再擴展到整個分類或網段。
- 出現存取異常時,從第一條規則開始檢查,不要只盯著最後的兜底規則。
- 保留一份可正常工作的舊設定,方便比較規則順序與出站標籤的變化。
結論:分流故障先查順序,再查標籤,最後查資料
多數問題可以沿著三個步驟定位:確認請求是否被前置規則提前攔截,確認命中的 outboundTag 是否存在,確認 geosite 與 geoip 集合是否成功載入。只有三項都正常後,才需要繼續檢查 DNS 與節點傳輸層。