geoip.dat、geosite.dat 如何更新?路由規則資料庫使用指南

了解 GeoIP 與 GeoSite 規則資料庫的內容差異、如何在用戶端更新,以及 geosite:cn、geoip:private 等規則的寫法。

本文重點

中國大陸網站連線走錯出口,或更新後出現規則類別不存在的提示,先釐清資料庫、路由規則與訂閱各自的用途。本文依序說明如何辨識檔案、更新資源、檢查規則及驗證結果,協助你在 v2rayN 搭配 Xray 或 V2Fly 核心時管理 Geo 資料,並提供易讀的路由設定範例與疑難排解方法。

GeoIP 與 GeoSite:一種比對 IP,一種比對網域

geoip.dat 收錄依國家、地區或特殊用途分類的 IP 網段;geosite.dat 則整理依地區、服務或用途分類的網域規則。這兩者都是供核心讀取的二進位資料檔,不是節點清單,也不是能用文字編輯器直接修改的 JSON 設定檔。

項目geoip.datgeosite.dat
比對對象目標 IP 位址目標網域
常見引用方式geoip:cn、geoip:privategeosite:cn
設定欄位路由規則中的 ip路由規則中的 domain
常見用途依 IP 歸屬分流、處理私有位址依網域類別分流

geosite:cn 代表讀取目前網域資料庫中的 cn 類別,不等於「所有以 .cn 結尾的網域」。同樣地,geoip:cn 是資料庫記錄的 IP 網段集合,無法據此判斷頁面使用哪種語言或服務商的身分。中文網站可能使用境外 CDN,國際服務也可能解析至中國大陸的位址。

2 個檔案
分別提供 IP 與網域分類
3 條規則
下方範例依序比對
10808
後續測試使用的本機 SOCKS 連接埠範例

v2rayN 是用來管理訂閱、產生設定及啟動核心的桌面用戶端;實際讀取這些規則的是核心。本文的 DAT 寫法適用於採用相應 Geo 資料機制的 Xray、V2Fly 設定。Android 版 v2rayNG 使用 Xray,v2flyNG 使用 V2Fly,但兩者的選單與檔案儲存方式不能直接套用桌面版的操作步驟。

更新前先釐清:訂閱、路由規則與 Geo 資料

更新訂閱主要會變更伺服器位址、連接埠、協定參數與節點清單。更新 Geo 檔案會變更分類資料;修改路由規則則是決定哪些類別使用哪個出口。這三者是不同操作。更新訂閱不代表 geosite.dat 已經更新;替換資料庫也不會自動新增直連規則。

在用戶端內更新

建議方式

優先使用 v2rayN 的 Geo 檔案更新功能,讓用戶端依現有資源網址儲存資料。更新後重新載入設定,並查看記錄確認實際使用的檔案。

適用情境:日常維護、沿用用戶端的資源設定

手動替換檔案

先找出執行中核心的資源目錄,再備份並替換對應檔案。請自行確認來源、類別集合與檔案權限,不能只憑檔名判斷相容性。

適用情境:離線維護、修復內建更新功能失敗的特定問題

只更新訂閱

用來更新伺服器連線資訊。節點可用性有變化時應執行,但不應把它當成修復 Geo 類別缺漏或本機路由順序的方式。

適用情境:節點位址變更、訂閱方案內容調整

結論:先記錄來源,再進行更新

更新前記下目前使用的核心、Geo 資源網址與自訂類別名稱;如果規則依賴額外分類,更新後先確認該類別仍然存在,再恢復日常使用。

不同的資料維護專案即使都輸出 geosite.dat,收錄的類別也可能不同。某個資料庫能辨識 cn,不代表也提供路由範本引用的其他類別。更換來源時,應分別確認「類別是否存在」與「檔案能否下載」。

v2rayN 更新 Geo 檔案:依這 5 個步驟操作

以下說明適用於提供「檢查更新」選單的 v2rayN 桌面版。不同版本的選單位置可能有所調整;若介面沒有「更新 Geo 檔案」,請先確認目前版本的資源更新功能,不要以「更新訂閱」取代。操作前請保留目前可用的設定,避免同時修改節點、DNS 與路由。

  1. 記錄目前設定

    查看目前使用的節點、核心與已啟用的路由設定,並記下自訂規則。若需確認本機監聽連接埠,請前往「設定」→「參數設定」,查看本機監聽相關選項;不要假設每種安裝方式都使用 10808。

  2. 執行資源更新

    在主畫面開啟「檢查更新」→「更新 Geo 檔案」。查看用戶端訊息,確認下載作業已完成;若目前版本分別列出資源更新項目,請檢查 GeoIP 與 GeoSite 的結果。

  3. 處理下載失敗

    若發生逾時,先確認系統時間、資源網址與目前節點是否可用。更新程式是否透過代理連線,取決於用戶端的實作與設定;開啟系統代理並不保證所有更新要求都會經過代理。

  4. 重新載入設定

    更新成功後重新啟動核心;若不確定介面上的操作位置,可以結束後重新開啟用戶端。檔案已寫入磁碟,不代表執行中的核心已重新讀取;接著查看啟動記錄是否出現資源載入錯誤。

  5. 驗證路由結果

    保留原有路由設定,分別測試一個預期直連的網域、一個預期走代理的網域,以及一個區域網路位址。比對連線記錄中的出口標籤,不要只看網頁是否能開啟。

手動替換後,也要確認讀取權限與檔案內容正確。若下載作業儲存的是錯誤回應頁面,即使檔名仍是 geoip.dat,核心也無法將它解析為資料庫。發生解析錯誤時,請先還原備份,再重新取得資源。

規則怎麼寫:geosite:cn 與 geoip:private 的用法

以下是用來說明的 routing 設定片段,並非可獨立啟動的完整設定。範例假設 outbounds 中已有標籤為 direct 的直連出口,且預設出口是代理。若沒有任何規則符合,Xray、V2Fly 通常會使用第一個出站;因此也必須一併檢查出站順序。

{
  "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"
      }
    ]
  }
}

IPIfNonMatch 表示網域未符合現有規則時,再嘗試解析 IP 進行比對。若在規則末尾加入一條能直接比對所有 TCP、UDP 要求的備援規則,網域階段可能已經符合,因此不會再進行預期中的 IP 補充比對。使用這種策略時,不要假設所有要求都會檢查 GeoIP。

更新後分流仍不正確:依 4 個層面逐一確認

「網站可以開啟」只能表示某條連線已建立,無法證明流量經過預期的出口。驗證 Geo 資料時,應固定節點、路由與測試目標,每次只變更一個條件。依序檢查以下四個層面,通常比不斷更換資料庫更容易找出原因。

  1. 檔案層:檢查更新時間、實際資源路徑與啟動記錄。若出現檔案不存在、讀取失敗或資料解析錯誤,請先修復資源載入,不要急著修改路由。
  2. 規則層:確認引用的類別是否存在、目前啟用的路由設定是否正確,以及前面的規則是否已攔截流量。規則由上而下比對,第一個符合的結果會生效。
  3. 網域層:確認核心收到的是網域還是 IP。瀏覽器自行解析、應用程式直接使用 IP,或透過 TUN 接管流量,都可能改變可供比對的資訊。
  4. 出口層:查看連線記錄中的出站標籤;若目前的記錄層級沒有記錄比對資訊,可暫時調整記錄設定。出口正確但速度較慢時,應改查節點與線路。

如果本機 SOCKS 入站確實監聽 127.0.0.1:10808,可以使用以下指令測試固定入口。socks5h 會讓 curl 將網域交由代理端處理,方便保留網域比對條件;此指令只能驗證要求的連線路徑,無法單獨證明有符合特定 GeoSite 類別。

curl --proxy socks5h://127.0.0.1:10808 --head https://example.com/

這裡的連接埠只是範例,必須與用戶端實際監聽的連接埠一致。若連線遭拒,通常應先檢查監聽連接埠與核心是否正在執行;若要求成功,則應查看相應時間的記錄,確認出口。測試區域網路目標時,也要區分「規則選擇直連」與「目標服務本身允許存取」,兩者並不相同。

常見問題:類別不存在、更新無效與維護頻率

提示 geosite 類別不存在,重新下載有用嗎?

先記下錯誤訊息中的類別名稱,再確認目前使用的資源來源。如果來源根本沒有提供這個類別,重複下載同一個檔案也不會改變結果。請還原原本的資料來源,或依照新來源提供的類別修改規則;修改前先備份路由設定。

顯示更新成功,為什麼中國大陸網站仍走代理?

先重新啟動核心,再確認已啟用的路由設定是否包含 geosite:cn 或 geoip:cn。接著檢查前面的規則、網域是否可供比對,以及目標是否收錄於目前的資料庫;下載成功一次,不代表這四項都正確。

資料庫需要每天手動更新嗎?

沒有統一規定必須每天更新。平時可定期檢查;遇到網站位址遷移、類別調整或明確發生錯誤分流時,再針對性更新。每次更換來源都請保留舊檔,避免將資料變動與其他設定修改混在同一次操作中。

Android 版可以直接沿用桌面版的資源目錄嗎?

不能直接沿用。v2rayNG 與 v2flyNG 的應用程式資料目錄及資源更新功能,會依各自版本而異。請優先使用應用程式提供的資源更新功能;匯入自訂設定時,先確認所用核心、類別名稱與資源檔案彼此相容。

最後,保留一份簡單的維護記錄:更新時間、使用的來源、是否更換路由範本,以及重新啟動後是否正常。Geo 資料提供分類,規則負責選擇出口,DNS 與入站方式則提供比對資訊。釐清各層的職責,才能判斷下一步應更新檔案、調整規則,還是確認應用程式是否真的經過用戶端。

下載 v2rayN