適合已在 v2rayN、v2rayNG 或 v2flyNG 中使用路由規則,但遇到標籤缺失、更新後無法啟動或分流結果改變的使用者。重點是先備份規則與資料檔,再更新 GeoIP、GeoSite,接著透過啟動日誌、命中結果與實際連線逐層確認;若發生異常,可依原始檔案、原有規則與原核心三個層次回復。
先釐清 GeoIP 與 GeoSite 各自比對的內容
GeoIP 與 GeoSite 都是供路由模組讀取的分類資料,但比對對象不同。GeoIP 用於目標 IP 位址,例如規則中的 geoip:private 或 geoip:cn;GeoSite 用於網域名稱,例如 geosite:cn、geosite:category-ads-all。前者無法直接判斷網域屬於哪個分類,後者也不能取代 IP 位址範圍比對。
常見檔名是 geoip.dat 與 geosite.dat。檔案只是分類容器,規則實際引用的是其中的標籤。不同資料來源、建立日期或精簡方案可能包含不同標籤,因此「檔案能下載」不代表「目前規則中的每個標籤都存在」。更新前應記錄實際使用的標籤,而不只是查看檔案日期。
| 資料類型 | 比對對象 | 規則範例 | 注意事項 |
|---|---|---|---|
| GeoSite | 請求中的網域名稱 | geosite:cn |
標籤必須存在於目前的 geosite.dat,規則順序也會影響結果。 |
| GeoIP | 目標 IPv4 或 IPv6 位址 | geoip:private |
網域是否先解析為 IP,取決於路由的網域解析策略。 |
| 明確指定的網域 | 完整網域、後綴或關鍵字 | domain:example.com |
不依賴 GeoSite 標籤,適合保留少量重要例外規則。 |
| 明確指定的網段 | 指定的 CIDR 位址範圍 | 192.168.0.0/16 |
不依賴 GeoIP 分類,區域網路直連規則通常應放在前面。 |
這個流程不一定每次都完整發生。以 Xray 路由的 domainStrategy 為例,AsIs 通常會先依原始網域規則處理,不會為了 GeoIP 比對而主動解析網域;IPIfNonMatch 會在網域規則未命中時嘗試解析,接著比對 IP 規則;IPOnDemand 則可能在遇到需要目標 IP 的規則時觸發解析。更新資料庫後若分流結果改變,應一併檢查策略與規則順序。
結論:先確認比對對象,再判斷資料庫是否失效
網域沒有命中 geoip:cn,不一定代表資料檔損壞;在 AsIs 策略下,它可能根本沒有進入目標 IP 分類比對。先查看網域策略與日誌中的目標位址,再決定是否更換資料檔。
更新前先保存三類可回復內容
更新 Geo 資料通常不會改變節點的 VMess、VLESS、TLS 或 REALITY 參數,但可能改變路由標籤的可用性與分類範圍。穩妥的做法不是直接覆蓋,而是先保存目前的規則、資料檔,以及用戶端正在呼叫的核心資訊。如此才能判斷故障來自規則、資料還是核心切換。
在 v2rayN 中,先開啟「設定」→「路由設定」,記錄目前啟用的路由規則集、規則順序與預設出站。接著在主介面查看目前的核心類型;若使用 Xray,常見解壓縮版的資料檔位於對應核心的資源目錄中。不同 v2rayN 7.x 版本的目錄組織可能不同,應以啟動日誌顯示的資源路徑或用戶端實際選用的核心目錄為準,不要只憑相似檔名覆蓋其他核心的資源。
- 匯出或複製路由設定:保留目前啟用的規則順序,尤其是區域網路直連、封鎖、指定網域與最終兜底規則。
- 複製舊資料檔:將現有的
geoip.dat、geosite.dat放入附有日期的本機備份資料夾,避免與新檔案混在同一路徑。 - 記錄核心與用戶端狀態:記下目前使用的 Xray 或 v2fly 核心、更新前是否能正常啟動,以及測試節點是否可連線。
- 列出自訂標籤:搜尋路由設定中的
geoip:與geosite:,將不常見的標籤另外列出。 - 一次只更新一組資源:不要同時更換核心、訂閱、DNS 與 Geo 資料,否則日誌出現異常時難以定位變因。
桌面版可在關閉核心後複製檔案,避免檔案正好處於讀取或替換過程。Android 上的 v2rayNG 與 v2flyNG 通常由應用程式管理資源目錄,不必尋找系統沙盒中的檔案;優先使用應用程式內提供的 Geo 資源更新或匯入入口,並在操作前匯出自訂設定。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心,兩者對基礎 geoip.dat、geosite.dat 規則的支援方向相近,但不能因此假定所有擴充標籤與設定欄位完全一致。
更新入口只負責替換資源,不能證明規則仍然相容
在 v2rayN 中透過「檢查更新」→「Geo files」完成下載後,仍需重新啟動核心並檢查日誌。進度提示結束只代表更新動作完成,不能取代標籤載入與分流命中確認。
檢查規則標籤、順序與核心相容性
Geo 資料最常見的相容性問題不是檔案完全無法讀取,而是某個自訂標籤在新資料中不存在。基礎標籤如 geoip:private 較常見,但地區、服務類別與擴充屬性標籤取決於資料集。若規則來自舊設定或其他資料來源,更新前必須確認新檔案仍提供相同標籤。
規則順序同樣重要。路由通常會依序尋找符合項目,前面的寬泛規則可能覆蓋後面的精確規則。例如先放置涵蓋範圍很大的 GeoSite 分類,再放單獨的網域直連規則,後者可能沒有執行機會。處理重要網域時,可將明確的例外規則放在寬泛分類之前,並保留最終兜底出站。
網域分類規則
- 輸入
- 請求網域
- 標籤
- geosite:cn
- 出站
- direct
- 前提
- 標籤存在且網域可見
適合先依網域分類處理,再由後續規則接手未命中的請求。
位址分類規則
- 輸入
- 目標 IP
- 標籤
- geoip:private
- 出站
- direct
- 策略
- 搭配 domainStrategy
區域網路位址應優先直連,避免管理頁面或本機服務走代理出站。
以下是用於理解結構的精簡路由片段。實際匯入 v2rayN 時,出站標籤必須與目前設定中的標籤一致;若用戶端產生的是其他名稱,應使用用戶端現有的值,不要機械式照抄。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["domain:intranet.example"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
}
]
}
}
其中 domain:intranet.example 是明確的網域規則,不依賴 GeoSite 資料,適合作為重要內部服務的保護規則。若新的 GeoSite 檔案缺少某個業務分類,先將少量重要網域改為明確規則,可以恢復基本使用;之後再決定尋找相容資料或調整分類設計。不要只因缺少一個標籤就一次刪除全部分流。
- 標籤存在但沒有命中:檢查網域是否已變成 IP、是否已由更早的規則處理,以及嗅探設定能否提供目標網域。
- 標籤不存在:啟動核心時通常會直接顯示分類清單缺失,應恢復舊檔案,或改用新資料確實包含的標籤。
- GeoIP 沒有生效:檢查目標是否仍以網域形式進入路由,以及
domainStrategy是否允許繼續進行 IP 比對。 - 所有流量都走同一個出站:核對預設規則、最終兜底規則與出站標籤,問題不一定來自 Geo 檔案。
從啟動日誌確認檔案與標籤是否載入
判斷更新是否成功,第一步是完全停止舊核心並重新啟動,而不是只關閉設定視窗。核心通常會在啟動或首次解析對應標籤時讀取 Geo 資料。若舊程序仍在執行,即使磁碟上的檔案已替換,目前的連線也可能繼續使用舊資源。
在 v2rayN 中可先停止服務,再重新啟動選定的設定,然後開啟日誌視窗觀察最初 30 秒。測試環境若使用本機 SOCKS 連接埠 127.0.0.1:10808,應先確認該入站監聽成功,再檢查 Geo 相關錯誤;因連接埠被佔用導致核心未啟動時,後續分流測試沒有參考價值。10808 只是本文的測試值,實際連接埠以「設定」→「參數設定」中的本機監聽設定為準。
| 日誌或現象 | 可能原因 | 下一步 |
|---|---|---|
| 找不到 geoip.dat 或 geosite.dat | 檔案不在目前核心讀取的資源目錄中,或更新寫入了另一套核心目錄。 | 根據啟動日誌確認資源路徑,將原檔案恢復到目前核心實際讀取的位置。 |
| list not found 或標籤缺失 | 規則引用了新資料中不存在的分類標籤。 | 恢復舊資料,或將規則改為新檔案中存在的標籤後重新啟動。 |
| 核心啟動成功但分流相反 | 規則順序、網域策略或分類內容發生變化。 | 開啟路由日誌,使用固定測試網域比較實際命中的出站。 |
| 本機連接埠沒有監聽 | 核心在讀取設定或資源時已退出,也可能是連接埠被佔用。 | 先處理第一個錯誤,不要用瀏覽器存取結果反推 Geo 資料狀態。 |
不同核心版本的錯誤文字可能略有差異,但判斷順序相同:先找出日誌中的第一個致命錯誤,再看它指向檔案路徑、標籤名稱還是設定欄位。後續出現的連線失敗往往只是核心未成功啟動所造成的連鎖結果。可重點搜尋 geoip、geosite、routing、failed 與具體標籤名稱。
更新完成了,為什麼日誌仍顯示舊規則結果?
先在用戶端停止核心,再確認工作管理員中的舊程序已退出,然後重新啟動設定。只替換檔案而不重新啟動核心,目前程序可能繼續使用已載入的舊資料。
提示找不到某個 GeoSite 標籤時該怎麼辦?
開啟「設定」→「路由設定」,找到日誌中指出的 geosite: 標籤。先恢復舊檔案,確認設定可以啟動,再確認新資料是否提供同名標籤;若沒有,應調整規則,而不是反覆覆蓋檔案。
核心可以啟動,但指定網域仍走錯出站?
將該網域暫時寫成一條明確的 domain: 規則,並放在寬泛分類之前。若明確規則能夠命中,表示連線鏈路正常,接下來應檢查 GeoSite 分類內容與規則順序。
v2rayNG 更新後需要重新匯入訂閱嗎?
通常不需要。Geo 資源與 VMess、VLESS 節點訂閱負責不同內容。先重新啟動目前的設定並查看執行日誌,只有訂閱本身的節點參數變更時才需要更新訂閱。
只測試網頁能否開啟,就能確認分流正確嗎?
不能。網頁可以存取只能證明存在可用的出站。應分別測試預期直連、預期代理與區域網路目標,並配合路由日誌確認三個請求實際使用的出站標籤。
更新異常時依檔案、規則、核心逐層回復
回復的目標是盡快恢復更新前已知的正常狀態,而不是在異常狀態下繼續疊加修改。先停止核心,將新的 geoip.dat 與 geosite.dat 移出資源目錄,再放回備份檔案。重新啟動後,若原有規則恢復正常,問題範圍就已縮小到新資料或標籤相容性。
如果恢復舊資料後仍然異常,再恢復更新前匯出的路由設定,尤其要確認規則順序、domainStrategy 與出站標籤。若資料與規則都恢復後核心仍無法啟動,請檢查更新過程中是否同時切換了 Xray 或 v2fly 核心。用戶端版本、核心版本與資料檔應分別記錄,避免將三個變因合併成一次更新。
- 第一層:恢復資料檔。適用於檔案缺失、標籤不存在、更新後分類結果突然改變。
- 第二層:恢復路由規則。適用於修改標籤或規則順序後出現全域直連、全域代理或區域網路無法連線。
- 第三層:恢復原本的核心選擇。適用於更新時同時更換核心,且日誌出現設定欄位不相容。
- 第四層:回到最小規則。只保留區域網路直連與最終代理出站,確認基礎連線後再逐條加回 Geo 規則。
恢復連線後,可以建立固定的維護節奏:更新前保存兩個資料檔與路由設定;更新後檢查本機連接埠、第一個日誌錯誤與三個固定測試目標;確認無誤後再刪除臨時備份。Geo 資料不需要因日期變化而頻繁替換,只有規則確實依賴新的位址範圍或網域分類時,更新才有明確效益。
最終判斷:能啟動、能連線、命中正確缺一不可
核心啟動成功只代表資源可讀取,網頁可以開啟只代表某個出站可用。完成維護必須同時滿足:日誌沒有 Geo 載入錯誤、固定測試請求能夠連線,以及直連與代理目標命中預期的出站。