geoip.dat、geosite.dat 更新教學:路由規則檔來源與設定方式

了解 GeoIP、GeoSite 資料庫如何用於路由分流,學會在用戶端更新規則檔,並在規則中使用 geosite:cn、geoip:private 等常見標籤。

本文重點

本文適合使用 v2rayN、v2rayNG 或 v2flyNG 設定路由分流的使用者。先了解網域資料庫與 IP 資料庫的差異,再依用戶端介面更新檔案,最後透過 Xray/V2Fly 格式的規則,說明標籤引用、比對順序與 DNS 條件。讀完後即可判斷問題來自資料來源、檔案路徑或路由設定,不必反覆重裝用戶端。

一、GeoIP 與 GeoSite 分別比對什麼

geosite.dat 儲存依標籤分類的網域規則,geoip.dat 儲存依標籤分類的 IP 位址區段。這些是核心讀取的二進位資料檔,不是節點清單,也不是 DNS 伺服器。更新檔案只會改變集合中的項目,不會自動改變規則指定的出站方向。

對象引用範例判斷依據
網域集合geosite:cn資料來源將網域規則歸入 cn 集合;不代表只比對 .cn 網域後綴。
IP 地理位置集合geoip:cn目標 IP 是否位於資料來源收錄的相應位址區段。
私人與特殊位址集合geoip:private資料來源定義的私人、保留等位址區段,實際範圍以該來源為準。

一次連線可能以網域進入核心,也可能只帶有目標 IP。網域規則需要核心取得網域;IP 規則則需要目標位址,或允許在路由階段解析網域。瀏覽器能開啟某個網站,不代表這次連線同時套用了網域集合與 IP 集合。

例如連線至區域網路管理位址 192.168.1.1,可以直接依位址區段判斷。連線至某個網域時,即使它列在 geosite:cn,解析結果也可能落在中國大陸以外的 CDN。兩種資料庫代表不同屬性,不能互相取代。

10.0.0.0/8
RFC 1918 私有 IPv4 位址區段
172.16.0.0/12
範圍至 172.31.255.255
192.168.0.0/16
常見區域網路位址區段

判斷重點:先確認位址範圍,再檢查區域網路規則

先用實際閘道位址確認直連規則,再檢查網站分類。上列三個區段是明確的私有 IPv4 範圍,不代表任何資料庫中 private 清單的完整內容;若還需要回環、鏈路本地或 IPv6 位址,請再核對資料來源。

二、規則檔來源與標籤相容性

常見來源包括 V2Fly 的 domain-list-community 網域集合、geoip 資料專案,以及 Loyalsoldier 等維護者建置的規則資料。來源專案可能提供文字清單,核心實際讀取的是建置後的 .dat 檔。請勿將網頁內容或原始網域文字改名為 geosite.dat。

用戶端預設來源

建議

沿用用戶端目前設定的 Geo 資料下載來源,先確認現有路由使用的標籤都能正常載入。避免同時更換來源與規則,增加排查變數。

適用情境:一般分流、首次更新、還原既有設定

維護專案的建置檔

需要特定分類時,再選擇明確支援這些標籤的來源。記下來源名稱、更新時間與檔名,並確認標籤說明符合核心格式。

適用情境:自訂分類、固定資料來源、排查標籤缺漏

檔名相同不代表標籤完全一致。cn 通常都找得到,但細分服務、廣告分類及帶有屬性的集合,可能只有部分來源提供。若設定引用不存在的標籤,可能導致核心無法載入設定,而不只是單一規則失效。

三、在 v2rayN 更新 Geo 檔案的操作順序

桌面版請先確認目前使用的設定是以 Xray 還是 V2Fly 核心執行,再更新對應的資料檔。以下說明適用於提供「更新 Geo 檔案」選項的 v2rayN 介面;不同版本的選單分類可能不同,介面文字有差異不代表檔案已損毀。

  1. 備份路由設定

    開啟「設定」→「路由設定」,記下目前啟用的路由方案與自訂規則。若曾手動管理 Geo 檔案,也請將原檔複製到備份資料夾。

  2. 更新資料

    在主視窗開啟「檢查更新」→「更新 Geo 檔案」。等待更新完成,分別確認 geoip.dat 與 geosite.dat 的處理狀態;節點訂閱更新提示不代表規則資料庫已更新。

  3. 檢查記錄

    查看主視窗的記錄或訊息區。若下載失敗,先檢查網路與來源網址;若顯示無法載入標籤,請核對引用名稱和資料來源,不要直接刪除整套路由設定。

  4. 重新載入

    透過用戶端停止並重新啟動目前的連線,讓核心重新讀取資料。若用戶端更新時已自動重新啟動,仍請查看啟動記錄,確認沒有 Geo 檔案載入錯誤。

  5. 重新測試規則

    保留原有節點、代理模式與 DNS 設定,只更新資料檔後測試同一批目標。這樣才能分辨更新資料的影響與其他設定變更。

在 v2rayNG 與 v2flyNG 中,先查看側邊選單的「路由設定」,確認目前使用的規則與可用的資料更新方式。不同版本的 Android 用戶端選單不盡相同;若沒有獨立的 Geo 更新選項,請依該版本說明使用檔案匯入或資源更新功能,不要直接套用桌面版目錄。更新訂閱主要是更新節點資訊,不能據此判斷 Geo 資料已更新。

四、geosite:cn 與 geoip:private 的規則寫法

以下是 Xray/V2Fly 的 routing 物件範例。先讓私人位址直連,再處理網域集合,最後以中國大陸 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"
      }
    ]
  }
}
欄位正確用法常見錯誤
domain填入 geosite:cn 等網域比對項目。將 geoip:cn 當成網域集合填入。
ip填入 geoip:private 或 CIDR。將網站網域直接填入 IP 位址陣列。
outboundTag引用目前完整設定中已定義的標籤。直接將介面顯示的節點名稱當成核心出站標籤。
rules將範圍明確的例外規則排在一般規則之前。在最後新增修正規則,卻先被前面的規則比對到。

同一條規則中的多個不同條件通常必須全部符合;同一陣列中的多個候選項則只要符合其中一項即可。若要達成「網域屬於 cn,或 IP 屬於 cn 就直連」,應如範例拆成兩條規則;將兩個欄位放在同一條規則中,並不會得到「或」的效果。

五、domainStrategy 與 DNS 為何會影響分流

routing.domainStrategy 決定路由判斷時如何處理網域解析,並不等同於整個用戶端的 DNS 設定。尤其不要與出站中的同名或相似設定混淆:路由階段決定使用哪個出站,出站階段還要決定如何建立連線。

因此,範例採用 IPIfNonMatch:先判斷已知的網域集合,未符合的目標再嘗試進行 IP 分類。不過,DNS 查詢本身透過哪條路徑傳送,仍取決於 DNS 伺服器、查詢規則與連線設定;只更新兩個資料檔,無法解決 DNS 污染或查詢逾時。

操作方式:先確認核心取得的是網域還是 IP

遇到「網域直連規則未生效」時,先檢查請求目標與路由記錄。若應用程式只將 IP 傳給核心,單獨更新 geosite.dat 也無法補回網域;請檢查應用程式的代理方式,必要時確認嗅探設定及適用範圍,再決定是否調整規則。

六、手動替換、驗證與常見錯誤

自動更新失敗時,可以手動取得同一維護來源建置的兩個檔案。替換前先停止核心,找出核心實際讀取資源的目錄,保留正確檔名,再重新啟動。桌面安裝版、免安裝版與 Android 應用程式的資源位置各不相同,沒有通用的目錄路徑。

  1. 確認讀取位置:以用戶端目錄說明、資源設定或記錄為準。不要因為程式目錄中有同名檔案,就認定核心執行時讀取的也是該檔。
  2. 確認下載結果:檔案不可為空,也不能是登入頁、錯誤訊息頁或壓縮檔。若系統隱藏副檔名,也請確認檔名沒有變成 geosite.dat.dat。
  3. 確認啟動成功:重新啟動後,檢查是否出現找不到檔案、資料解析失敗或找不到集合標籤等訊息。若啟動失敗,先還原備份,避免繼續疊加修改。
  4. 確認實際路由:在應用程式確實使用用戶端代理的前提下,分別連線至區域網路目標、預期直連目標與預期代理目標,並搭配可用的連線記錄檢查出站標籤。
狀況優先檢查項目處理方式
下載成功,仍顯示找不到檔案執行中核心的資源目錄與檔名。將檔案放到實際讀取位置,然後重新啟動核心。
更新後顯示某個標籤不存在新來源是否提供該標籤。還原舊資料,或依新來源的分類調整相應規則。
網站仍使用錯誤的出站規則順序、網域是否可見、目前選用的路由方案。檢查最先符合的規則,並確認編輯的是目前正在使用的路由。
核心啟動正常,但網站無法開啟節點連線、DNS、目標服務狀態。先區分連線故障與分類問題,再參考故障排除逐項檢查。
Geo 檔案需要每天更新嗎?

沒有規定一定要每天更新。分類變更、位址分配調整及維護專案修正,才是更新的實際效益。可以先每週檢查一次,遇到分類錯誤或需要新增標籤時再手動更新;若用戶端沒有 Geo 定時更新功能,也不要將訂閱自動更新間隔當成替代方案。

更新資料庫會自動設定中國大陸直連嗎?

不會。資料檔只提供集合,仍須有規則引用 geosite:cn 或 geoip:cn,並指向有效的直連出站。如果目前模式未使用這套路由,資料庫再新也不會改變連線結果。

為什麼檔案修改時間變了,分類卻沒有改變?

修改時間只能表示本機檔案曾被寫入,無法證明所需項目有變動,也無法確認核心已重新讀取。依序核對資料來源內容、執行時路徑、核心是否重啟,以及實際符合的規則,比一再下載更有效。

下載用戶端