geoip.dat 與 geosite.dat 規則資料庫:用途、更新方式與引用方法

認識 geoip.dat 與 geosite.dat 的來源和結構,了解 v2rayN、v2rayNG 的更新位置,以及 geosite:分類、geoip:地區代碼的引用方式與更新後的生效檢查。

本文速覽

本文適合已匯入節點、準備檢查路由分流的使用者。先分清網域分類與 IP 位址庫,再依用戶端更新實際使用的資料檔,最後透過精簡的路由範例和日誌確認匹配結果。重點是分別檢查「檔案下載成功」、「分類能否載入」及「流量是否走對出口」,避免一再更新卻仍無法排除分流錯誤。

兩個資料庫各自匹配什麼

geosite.dat 儲存依標籤分類的網域項目;geoip.dat 儲存依標籤分類的 IP 位址範圍。兩者都是供核心讀取的二進位資料檔,不是可直接貼進路由編輯欄的 JSON,也不會儲存訂閱連結、節點密碼或傳輸協定參數。

2 個檔案
本文討論的 DAT 資源
2 種匹配
網域分類與 IP 位址範圍
3 個出口
範例使用 direct、proxy、block

例如,geosite:cn 會查詢網域庫中的 cn 分類,geoip:cn 則會查詢位址庫中的 cn 位址範圍。兩者不是同一份清單:網域被歸入某個分類,不代表它目前解析出的每個位址都屬於相同地區;使用境外 CDN 的網站尤其容易出現這種差異。

資源匹配對象常見引用方式限制
geosite.dat要求中帶有或核心辨識出的網域geosite:cn取決於分類收錄情況,不是即時 DNS 查詢結果
geoip.dat目標 IP 位址geoip:cn僅反映 IP 位址範圍分類,不能據此判斷服務營運主體
geoip.dat資料來源定義的私有或保留位址集合geoip:private實際範圍以該資料來源的標籤內容為準

只有 IP 位址的要求無法直接使用網域分類匹配。網域要求能否進一步進行 IP 匹配,則與路由的網域策略和 DNS 解析有關。因此,「更新了 geosite,所有應用程式就會依網域分流」並不成立,還得檢查用戶端收到的目標資訊。

選擇資料來源與更新方式

常見資料來自社群維護的網域清單和 IP 位址範圍專案,再透過建置流程編譯成 DAT 檔。網域項目可能包含完整網域、後綴匹配、關鍵字或正規表示式等不同形式;位址庫則主要依標籤彙整 CIDR 網段。Xray 與 V2Ray 生態系中的這些檔案有相應的格式規範,但檔名相同不代表不同來源使用相同標籤。

用戶端程式、核心程式、規則資料和路由規則是四個不同層面。更新 v2rayN 不代表正在使用的 Geo 檔案也已更新;更新 Geo 檔案也不會自動調整自訂規則的順序。切換資料來源前,請先記下規則引用的標籤,例如 cn、private 和業務分類,並確認新來源確實提供這些標籤。

透過用戶端內建功能更新

建議

由用戶端依已設定的資源網址取得檔案,並寫入其管理的資源位置。這樣較不容易把新檔案放進舊目錄,更新日誌也方便追查失敗環節。

適用情境:日常維護、沿用預設資料來源、初步排查。

手動匯入或替換

先確認目前核心實際讀取的資源位置,再使用來源可信的檔案。Android 端建議優先使用用戶端提供的資源匯入功能,不要猜測應用程式的私有目錄。

適用情境:離線更新、內建下載無法連線、需要固定資料版本。

切換自訂來源

同時核對下載網址、檔案格式與分類清單。不要只因檔案容量較大就替換;新增分類未必派得上用場,缺少正在引用的分類反而可能導致核心無法啟動。

適用情境:明確依賴特定業務分類,且能維護規則引用的使用者。

結論:先固定來源,再更新資料

保留現有資源和路由設定的備份,先在相同來源內更新並驗證。只有確認缺少必要標籤時,才考慮更換來源;排查時不要同時更換來源、修改 DNS 和調整規則順序。

v2rayN 更新與重新載入步驟

桌面端請先確認目前連線使用的是 Xray 或 V2Ray 的 DAT 路由設定。本文範例不適用於其他格式的規則集。v2rayN 各版本的選單配置可能不同,常見更新入口位於主視窗的「檢查更新」下方,名稱可能是「Geo 檔案」或「更新 Geo 檔案」;若該版本將入口移至資源管理頁,請以目前的選單名稱和日誌為準,不要把「更新訂閱」當成更新規則資料。

  1. 記錄目前設定

    開啟「設定」→「路由設定」,記下目前啟用的路由方案、規則順序和使用的分類,並另外備份自訂設定。有些版本儲存方案後,還需要在主視窗選取該方案才會套用。

  2. 更新規則資料

    在主視窗開啟「檢查更新」→「Geo 檔案」,執行更新。分別查看 geoip.dat 與 geosite.dat 的更新結果,不要看到第一項成功就關閉日誌。

  3. 確認下載結果

    如果出現連線失敗,先檢查資源下載網址,以及更新操作是否需要透過目前的代理連線。如果回傳內容無法解析,請確認是否誤填網頁網址而非檔案網址;有檔名不代表內容就是 DAT 資料。

  4. 重新啟動目前服務

    資料寫入後,請重新啟動目前的連線,讓核心重新載入資源。只切換主視窗分頁不會重新載入;已建立的長連線也無法代表新規則的處理結果。

  5. 檢查啟動日誌

    確認沒有出現資源開啟失敗、分類不存在或路由建置失敗等訊息。接著重新發出測試要求;若用戶端啟用了自動還原舊設定,也要確認目前執行的確實是剛儲存的方案。

v2rayNG 的資源更新入口

Android 版 v2rayNG 使用 Xray 核心,Geo 資料通常由應用程式管理。提供獨立資源管理頁的版本,可從側邊選單進入「Geo 資源檔案」,在該頁更新或匯入資源;較早期的版本可能將「更新 Geo 檔案」放在主畫面右上角選單。若入口名稱或版面不同,請先尋找 Geo 資源相關項目,不要到訂閱群組中尋找。

若更新必須透過代理,請先確保既有連線能存取資源伺服器;若代理本身因資源載入失敗而無法啟動,則應改用目前網路可連線的下載來源或離線匯入。不要把「下載通道依賴代理」和「路由檔案需要更新」混為一談而不斷重試。

geosite 與 geoip 的引用方式

在 Xray 路由 JSON 中,geosite: 引用要寫在 domain 陣列,geoip: 引用則要寫在 ip 陣列。分類名稱不是任意描述文字,必須存在於目前使用的檔案中。geoip:cn 的 cn 是常見的地區代碼標籤;private 則是資料集定義的特殊標籤,不是國家代碼。

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

這是一段路由設定範例,不是可獨立啟動的完整設定。此範例假設完整設定已定義 direct 與 proxy 出口;若要封鎖流量,還必須另外定義並引用 block。這些標籤只是名稱,必須與實際的 outbounds 相對應,不能直接照抄後就期待用戶端自動建立出口。圖形化規則編輯器通常只需填入對應的匹配欄位,不應貼上整段 JSON。

若要指定其他檔案,Xray 支援類似 ext:custom-site.dat:cn 的外部資源引用。對應檔案必須位於核心可存取的資源位置,且包含該分類。一般使用情境沿用預設檔名即可,不必為了更新資料而加入外部檔案引用。

更新後的生效檢查與問題排查

請依照「資源已載入 → 規則能匹配 → 流量抵達預期出口」的順序進行驗證。只看網站能否開啟並不足夠:代理和直連都可能成功,網頁快取也會進一步掩蓋路由變化。建議在更新前後各記錄一輪結果,並維持節點、DNS 和測試目標不變。

現象優先檢查項目處理方式
核心啟動失敗資源路徑、檔案內容、分類名稱查看啟動日誌中的檔名與標籤,還原舊資源後逐項修正
更新成功但行為沒有改變執行中的設定、服務是否重新啟動、既有長連線重新啟動連線服務,透過新要求確認實際出口
網域規則沒有匹配目標網域是否可見、分類是否收錄、前置規則暫時新增完整網域規則,分辨是資料缺漏還是要求資訊不足
IP 規則沒有匹配實際目標位址、網域策略、解析結果核對日誌中的目標 IP,確認是否需要先解析網域再進行匹配
區域網路服務經由代理連線私有位址規則、規則順序、區域網路網域先確認實際目標位址,再設定明確的直連規則

可在自有測試環境中連線至 192.168.1.10:8080 的服務,用來確認區域網路位址是否直連;這裡的位址和連接埠僅為測試範例,必須替換成網路內實際存在的服務。再選擇一個確定收錄於目前網域分類的網站,以及一個應透過代理連線的網站,分別查看存取日誌中的目標和出口標籤。若未啟用存取日誌,可暫時調高至適當的日誌層級;測試完成後請還原設定,避免長期儲存不必要的存取記錄。

結論:先用單條規則隔離問題

針對分流錯誤的網域,暫時新增一條置頂的完整網域規則:若出口因此改變,接著檢查分類收錄情況和規則優先順序;若出口仍未改變,先確認流量是否進入目前的用戶端、執行中的設定是否正確,以及核心是否取得網域資訊。

確認穩定後,再刪除臨時測試規則,並記錄這次使用的資料來源、更新日期和有效分類。Geo 資料適合定期維護,但不必每次遇到連線異常就更新:驗證失敗、伺服器無法連線和傳輸參數不一致,通常應檢查節點或協定設定,而不是修改地理分類。

v2rayN / v2rayNG 下載