geoip.dat、geosite.dat 更新教學:V2Ray 路由規則資料庫設定

路由規則失效可能是資料庫過舊。了解 geoip、geosite 檔案用途、用戶端更新方式,以及 geosite:cn 等常見寫法。

本文重點

geoip.dat 管理 IP 位址集合,geosite.dat 管理網域集合。本文適合已能連線至節點,但遇到直連與代理分流異常的使用者:先確認目前使用的核心與路由模式,再更新實際載入的資料檔,最後透過規則順序、DNS 策略和日誌確認結果。更新訂閱無法取代更新規則資料庫;更新成功也不代表目前流量一定符合預期規則。

geoip 與 geosite:先分清比對目標

V2Ray 與 Xray 的路由模組可引用外部資料集合,無須將大量網域和 IP 網段逐一寫入設定。geosite.dat 儲存含標籤的網域清單;geoip.dat 儲存含標籤的 IP 網段清單。檔案本身不會決定流量走向,只有路由規則引用這些集合並指定出口,才會產生分流效果。

項目geosite.datgeoip.dat
比對目標目標網域目標 IP 位址
常見引用方式geosite:cngeoip:cn、geoip:private
JSON 欄位domain 陣列ip 陣列
常見落差網域不在集合中,或連線未提供網域名稱位址歸屬已變動,或尚未取得目標 IP

geosite:cn 並非「所有以 .cn 結尾的網域」,而是目前資料來源中名為 cn 的集合。集合可能包含其他網域後綴,實際成員由資料來源維護。geoip:cn 也不是依網頁語言判斷,而是比對資料檔記錄的 IP 網段;它無法單獨判斷網站所屬業務。

規則資料庫過舊可能漏掉新加入的網域或已變動的網段,但並非所有異常都由舊檔案造成。看不到目標網域、規則遭前面的規則攔截,或目前路由模式未使用這份設定,都可能導致「更新後仍然無效」。因此先記錄現象再更新,比反覆替換檔案更容易找出問題。

v2rayN 更新 Geo 資料檔:先確認核心再操作

v2rayN 是管理介面,實際讀取規則資料庫的是啟動後的核心。本文的 .dat 用法適用於 V2Ray 與 Xray;若目前設定使用其他規則資料格式,請勿只因用的是同一款用戶端,就直接套用相同的檔案路徑。先查看啟動日誌中的核心名稱與設定位置,再進行以下更新。

  1. 記錄目前狀態

    在主畫面記下目前的伺服器、系統代理狀態與路由選項。保留現有路由設定;自訂設定也應備份,以便還原。排查期間不要同時更換節點與規則模式。

  2. 尋找更新選項

    在提供此功能的 v2rayN 介面中,開啟「檢查更新」→「更新 Geo 資料檔」。不同介面版本的選項位置與名稱可能不同;若找不到,先查看目前介面的更新選單,不要把「更新訂閱」當成替代方式。

  3. 等待更新完成

    查看更新結果或日誌,確認所需的兩個資料檔都已下載完成。若逾時,先確認更新來源是否可連線;若更新功能提供代理選項,可使用已確認可用的代理重試,避免連續重複點擊。

  4. 重新載入核心

    更新完成後,重新啟動目前的服務或核心;若無法確認是否已重新載入,請關閉並重新開啟 v2rayN。查看啟動日誌,確認沒有檔案不存在、讀取失敗或分類不存在等錯誤。

  5. 重新測試相同目標

    保留原本的節點與路由模式,再次開啟先前出現異常的目標。建立新連線後查看出口記錄;更新前已建立的連線不一定會重新進行路由判斷。

更新失敗時:選擇內建更新或手動替換

建議優先使用用戶端提供的更新功能,這樣較容易將檔案放到目前環境實際使用的位置。不要照抄他人的絕對路徑:可攜式目錄、安裝目錄、使用者資料目錄及自訂啟動方式,可能各自使用不同的資源路徑。磁碟上有同名檔案,不代表執行中的核心會讀取該檔案。

用戶端內建更新

建議

透過目前的更新功能取得規則資料庫,並保留下載結果與啟動日誌。完成後重新啟動核心,確認實際使用的資料目錄,降低檔案放錯位置的可能性。

適用情況:日常維護、更新功能可正常連線

手動替換檔案

從選用的規則資料來源正式發布管道,取得對應的二進位資料檔。停止核心後先備份舊檔,再將新檔放入已確認的資源目錄;若下載的是壓縮檔,請先解壓縮,不要直接將壓縮檔重新命名為 .dat。

適用情況:自動更新失敗,且清楚知道資源目錄與資料來源

結論:先確認讀取位置,再替換檔案

手動更新前,記錄核心啟動參數與資源目錄;替換後立即重新啟動,並檢查載入錯誤。若路徑不明,先釐清路徑,不要同時將檔案複製到多個目錄,以免下次更新時無法判斷哪份檔案已生效。

手動替換時也要確認分類是否存在。不同資料來源即使檔名都是 geosite.dat,提供的標籤也不一定相同;包含 @ 的屬性篩選寫法同樣取決於來源檔案內容。若出現「找不到分類」,請核對規則引用的集合與資料來源說明,而不是修改節點協定。保留舊檔可在設定載入失敗時快速還原。

geosite:cn 與 geoip:cn 的路由寫法

以下是合併至核心設定的 routing 片段,並非可直接執行的完整用戶端設定。範例假設已有名為 direct 的直連出口;這些出口標籤必須與實際設定完全一致。在 v2rayN 使用圖形化路由編輯器時,可依相同邏輯填入網域、IP 與出口欄位,請勿直接覆寫用戶端自動產生的整份設定。

{
  "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"
      }
    ]
  }
}
2 個檔案
範例引用的 Geo 資料檔
3 條規則
私有位址、網域集合、IP 集合
53 埠
傳統 DNS 常用埠,查詢路徑另行確認

IPIfNonMatch 表示先嘗試以現有目標資訊進行比對;網域請求未符合規則時,再解析為 IP 並嘗試比對 IP 規則。這不代表「所有請求都會先解析」。若前面已有一條涵蓋所有網域的代理規則,比對會在該規則結束,後面的 geoip:cn 無法作為萬用補救方式。

規則未生效:依序檢查規則順序、網域與 DNS

路由會依規則由上而下判斷,首次符合時就決定出口。資料庫只負責判斷「目標是否屬於某個集合」,不會修正先前已符合的規則。因此排查時應同時查看路由清單、目標位址與日誌中的出口標籤,不要只憑網頁能否開啟來判斷。

  1. 確認模式:檢查主畫面目前選用的路由是否符合預期。全域代理或全域直連模式可能會略過正在編輯的分流設定。
  2. 確認網域:如果應用程式只將 IP 位址交給代理,網域規則可能無法符合。嗅探或許能從部分協定還原網域,但並非支援所有連線,也無法保證每次都成功。
  3. 確認 DNS:需要依 IP 判斷路由時,解析結果會影響比對。傳統 DNS 常使用 UDP/TCP 53,加密 DNS 則採用其他傳輸方式;網頁連線經過代理,不代表 DNS 查詢也走相同路徑。
  4. 確認順序:檢查前方是否有範圍較廣的網域規則、埠號規則或預設規則。先用精確網域規則驗證出口,再恢復集合規則,可區分問題來自規則資料庫還是設定順序。
  5. 確認是新連線:關閉目標頁面或重新啟動測試應用程式後再試。必要時暫時啟用較詳細的日誌,驗證完成後恢復常用的日誌層級;避免公開包含訂閱網址與目標網域的完整日誌。

若精確網域能正確走指定出口,改用 geosite:cn 後卻未符合,請優先確認該網域是否確實屬於目前的集合。若精確規則也無效,先檢查目前設定是否已生效、出口標籤是否正確,以及前置規則是否攔截;此時繼續下載規則資料庫通常無濟於事。

Geo 資料檔更新常見問題

顯示更新成功,為什麼流量還是走錯線路?

先重新啟動核心,再建立新連線。檢查目前的路由模式與日誌中的出口標籤,接著暫時新增目標的精確網域規則作為對照。若精確規則有效、集合規則無效,再確認集合內容與實際讀取路徑。

兩個檔案需要每天一起更新嗎?

不必每天例行更新。發現分類變動、開始維護路由,或資料來源發布重要調整時再更新即可。用戶端支援一次更新時可一併處理;若使用自訂資料來源,則應確認各來源的標籤仍符合目前規則,並保留可還原的檔案。

顯示 geosite 分類不存在,需要重新新增訂閱嗎?

先核對錯誤訊息中的標籤拼法,再確認 geosite.dat 的來源與分類清單。必要時還原上一份可用檔案,或將規則改成資料來源實際提供的分類。重新新增訂閱無法補上資料檔中缺少的標籤。

Android 用戶端也能直接套用桌面版目錄嗎?

不能直接套用相同目錄。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心,請透過各用戶端提供的資源更新功能操作;實際位置以目前介面為準。行動裝置的應用程式資料目錄由系統管理,桌面版設定片段也須配合用戶端支援的匯入方式使用。

下載v2rayN