2026-10-14 · 路由分流 · 約 10 分鐘

geoip.dat 與 geosite.dat 更新教學:geoip:cn、geosite:category-ads 規則設定

了解 GeoIP、GeoSite 資料庫的用途,以及 v2rayN 更新 Geo 檔案的入口與存放位置,並透過路由規則範例掌握國家與網域類別的引用方式。

本文重點

本文適合已匯入訂閱、準備調整路由分流的使用者。先釐清 IP 資料庫與網域資料庫的差異,再透過 v2rayN 更新 Geo 檔案、確認核心實際讀取的位置,最後設定國家與廣告類別規則。範例採用 V2Ray/Xray 的 DAT 路由語法;操作前請確認目前使用的核心,以及資料來源是否包含引用的類別。

GeoIP 與 GeoSite:各自比對什麼

geoip.dat 儲存依國家或其他標籤分類的 IP 網段;geosite.dat 儲存依標籤分類的網域規則。這些是供核心讀取的資料檔,不是節點清單,也不是訂閱網址。更新訂閱會更新伺服器設定,但不能據此認定 Geo 檔案也已更新。

項目GeoIPGeoSite
常見檔名geoip.datgeosite.dat
比對對象目標 IPv4 或 IPv6 位址連線攜帶或透過嗅探取得的網域
規則範例"ip": ["geoip:cn"]"domain": ["geosite:cn"]
主要限制不能僅憑 IP 歸屬地判斷營運者所在地類別範圍取決於資料來源,且需要網域資訊

geoip:cn 表示引用資料庫中的 cn IP 集合,不是「所有中文網站」。geosite:cn 引用的是網域類別,兩者並非一一對應。網站可能使用跨國 CDN,同一個網域在不同網路環境下也可能解析到不同位址,因此網域規則與 IP 規則要分開理解。

在 v2rayN 更新 Geo 檔案

先確認目前節點使用 V2Ray 或 Xray,以及目前啟用的路由方案。v2rayN 負責產生設定並管理核心,實際讀取資料庫、比對路由的是核心。以下以提供「檢查更新」→「更新 Geo 檔案」入口的桌面介面為例;不同介面版本的名稱或位置可能有所不同,更新訂閱不能取代這項操作。

  1. 記錄目前狀態

    記下目前啟用的路由方案、節點使用的核心,以及這次準備排查的網域。先備份路由設定,避免在同一次操作中混合修改規則與更新資料庫。

  2. 執行更新

    在主畫面開啟「檢查更新」→「更新 Geo 檔案」。查看介面訊息或記錄,確認下載作業已完成;只看到選單項目被點選,不能證明檔案已成功寫入。

  3. 確認檔案

    找到目前執行中的用戶端資料目錄,檢查 geoip.dat 與 geosite.dat 的修改時間、檔案大小和更新記錄。如果有多個同名檔案,還要確認核心實際使用的是哪一份。

  4. 重新啟動並驗證

    重新啟動目前使用的核心;若介面沒有獨立的重新啟動選項,請完整關閉用戶端後再啟動。確認記錄中沒有 Geo 檔案載入錯誤,再重新建立測試連線,觀察規則是否導向預期的出口。

若更新失敗,請依錯誤類型處理:下載逾時時檢查連線至更新來源的網路;憑證錯誤時先檢查系統日期與時間;寫入失敗時檢查目錄權限,以及檔案是否遭其他程序占用。訂閱群組中的「透過代理更新」是訂閱更新選項,不能據此推斷它也會控制 Geo 檔案下載。

存放位置:以目前執行個體與核心記錄為準

不要只憑網路上的固定路徑覆蓋檔案。可攜式目錄、安裝目錄、使用者資料目錄,以及不同發行套件的資源配置都可能不同。尤其是電腦中保留兩份 v2rayN 時,更新舊目錄中的檔案,不會自動影響目前執行個體讀取的資料。

定位方式:先找到執行個體,再確認資源目錄

Windows
  • 在工作管理員中對目前的程序選擇「開啟檔案位置」,確認實際執行的是哪一份程式。
  • 在與目前執行個體相關的目錄中搜尋兩個 DAT 檔案,並查看更新後的修改時間。
  • 搭配用戶端記錄、產生的設定與核心啟動資訊,判斷實際使用的資源路徑。
macOS 與 Linux
  • 區分應用程式的安裝位置與目前使用者的資料目錄,不要假設資源都放在程式旁邊。
  • 檢查啟動環境與核心記錄,確認是否明確指定資源目錄。
  • 手動替換前先停止核心、保留原始檔案,並確認目標目錄具有寫入權限。

有同名檔案不代表核心正在讀取該檔案;請交叉確認目前執行個體、啟動環境與載入記錄。

例如,在 Windows 的 PowerShell 中,可以先進入已確認的用戶端目錄,再執行下方的唯讀搜尋。結果只會列出該目錄樹中的檔案,不會自動覆蓋任何內容;若資源位於使用者資料目錄,還需要到相應目錄繼續搜尋。

Get-ChildItem -Path . -Recurse -File -Filter '*.dat' |
  Where-Object { $_.Name -in @('geoip.dat', 'geosite.dat') } |
  Select-Object FullName, Length, LastWriteTime

手動管理核心時,也要留意資源目錄環境變數,例如 V2Ray 的 V2RAY_LOCATION_ASSET 或 Xray 的 XRAY_LOCATION_ASSET。由用戶端管理核心時,不要任意新增這些變數,否則核心可能會略過剛更新的目錄。只有確認啟動方式與實際讀取路徑後,手動替換才有意義。

規則設定:封鎖廣告、網域直連與 IP 直連

以下是 V2Ray/Xray 設定中的 routing 片段,並非可直接執行的完整用戶端設定。範例展示三條規則:將廣告類別導向封鎖出口,並將中國大陸網域與 IP 導向直連出口。使用前務必確認實際的出口標籤;此處的 block 與 direct 只是範例標籤,不會因為寫入規則就自動建立出口。

2
本例引用的 DAT 檔案
3
由上而下依序比對的規則
1
更新後至少重新啟動一次核心
{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "domain": [
          "geosite:category-ads"
        ],
        "outboundTag": "block"
      },
      {
        "type": "field",
        "domain": [
          "geosite:cn"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": [
          "geoip:cn"
        ],
        "outboundTag": "direct"
      }
    ]
  }
}

在 v2rayN 的路由編輯介面中輸入時,網域條件使用 geosite:category-ads,IP 條件使用 geoip:cn,不要把整個 JSON 物件貼到單一條件欄位中。儲存後還要確認這套方案已設為目前啟用的路由。完整欄位說明請參閱本站的完整設定指南。

網域策略:為什麼 IP 規則沒有符合

範例選用 AsIs,表示路由階段不會為了比對 IP 規則而額外解析網域目標。若連線原本攜帶的是 IP,仍可符合 geoip:cn;若連線攜帶網域但未符合網域規則,就不能期待它一定會符合中國大陸 IP 直連規則。

AsIs:先依網域分類

建議

適合作為本教學的排查起點。網域類別與 IP 條件的適用範圍明確,可避免在同一次測試中引入額外的 DNS 解析;但這不代表所有網路環境都應固定使用此策略。

適用情況:先確認 GeoSite 規則與排序是否正確。

IPIfNonMatch:解析後再比對

網域未符合現有規則時,嘗試解析網域並繼續以 IP 條件比對。採用前請檢查核心的 DNS 設定、解析結果與預設出口,避免將解析差異誤認為資料庫過期。

適用情況:明確需要透過解析後的 IP,為網域流量補充分流規則。

如果應用程式直接連線到 IP,GeoSite 可能無法取得網域。嗅探可以從部分協定流量中擷取網域,但並非所有連線都能還原網域;應用程式使用的傳輸方式與加密機制也會影響結果。單獨更新 geosite.dat,無法解決「路由時根本沒有網域可供比對」的問題。

更新後仍有異常:依據記錄縮小排查範圍

驗證時不要只看網頁能否開啟。先記下待測網域、預期出口與存取時間,再查看同一時段的核心記錄。記錄的詳細程度取決於目前的記錄層級;必要時可暫時提高詳細程度,排查完成後再恢復。避免公開包含訂閱網址或認證資訊的完整記錄。

顯示找不到 category-ads,但檔案不是已經更新了嗎?

先確認資料來源是否提供此類別。如果來源只提供其他廣告集合,請依實際標籤修改規則,不要一再下載相同檔案。修正後重新啟動核心,確認類別載入錯誤已消失,再測試連線。

顯示無法開啟 geoip.dat,應該放在哪裡?

先查看記錄中的失敗路徑,確認目錄存在、檔名正確,且程序具有讀取權限。接著檢查啟動環境是否指定了其他資源目錄。不要把檔案複製到多個目錄碰運氣。

廣告規則已儲存,為什麼還是會看到廣告?

確認目前啟用的方案、規則順序與封鎖出口標籤,再檢查廣告請求使用的網域是否包含在類別中。與正文共用網域的廣告很難只靠網域清單區分,頁面快取或既有連線也可能保留舊結果。

中國大陸網站走代理,是 GeoIP 過期了嗎?

先確認連線目標是網域還是 IP。使用 AsIs 時,網域未符合規則不代表一定會進一步比對 IP。也要檢查是否有更前面的代理規則、目標是否使用境外 CDN,以及 DNS 解析結果是否符合預期。

同一套規則在另一個核心無法使用?

先確認目標核心支援的規則格式。本文的 DAT 檔案以及 geosite:、geoip: 引用方式適用於 V2Ray/Xray,不能只改副檔名就轉成其他核心的規則集。請改用目標核心相應的資料格式與設定欄位。

後續維護:分開更新資料庫與規則

更新資料庫會改變類別所包含的項目,更新路由則會改變條件、順序與出口,兩者都會影響分流結果。一次只調整一個變數,較容易判斷問題是來自資料變動、規則覆蓋,還是 DNS 解析差異。每次更新訂閱後,沒有必要手動替換所有檔案。

若遇到無法啟動或網路中斷,請優先還原上一份可用設定,再逐項排查。其他常見連線問題可參閱疑難排解。Geo 資料只是路由條件之一;流量入口、規則順序、DNS 策略與出口標籤都會共同決定最終的連線路徑。

下載v2rayN