GeoSite 提供網域分類,GeoIP 提供 IP 位址範圍分類;兩者是路由規則引用的資料,不是節點訂閱。本文適合已能連線,但需要更新分流資料,或排查網站流量走錯出口的使用者。依序確認核心與資料來源、更新檔案、重新啟動服務並檢查規則是否命中,比反覆更新訂閱更能對症處理。
兩種 dat 檔各自解決什麼問題
路由分流可以想成一張連線分配表:哪些要求直接連線、哪些透過代理,哪些則直接封鎖。geosite.dat 和 geoip.dat 是這張表所依據的分類資料。檔案更新後,分類內容可能有所變動,但用戶端的規則順序與出口選擇不會自動改寫。
| 檔案 | 儲存的內容 | 規則引用範例 | 使用條件 |
|---|---|---|---|
geosite.dat | 依標籤整理的網域項目,可能包含網域、完整網域或正規表示式等比對類型 | geosite:cn | 核心取得目標網域,且資料來源提供對應標籤 |
geoip.dat | 依標籤整理的 IPv4、IPv6 位址範圍 | geoip:cn | 目標本身是 IP,或路由策略允許解析網域後比對 IP |
geosite:cn 的意思是「引用目前 GeoSite 檔案中名為 cn 的集合」,不是「比對所有以 .cn 結尾的網域」。集合也可能收錄其他後綴的網域,實際範圍由資料維護者決定。同理,geoip:cn 是位址範圍分類,不保證某個網站的業務歸屬,也不能取代延遲測試。
節點訂閱處理的是「連線到哪個伺服器、使用什麼協定與參數」。Geo 資料檔處理的是「這個網域或 IP 屬於哪個群組」。VMess、VLESS 等節點協定與這兩種分類檔案屬於不同設定層級,因此更新訂閱不等於更新分流資料庫。
更新前先確認核心、來源與備份檔
先確認目前使用的資料格式。本文介紹 Xray、V2Fly 使用的傳統 dat 路由資料。v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心;桌面版 v2rayN 則應以目前設定實際呼叫的核心為準。若目前設定使用其他規則格式,不能只改副檔名就套用本文的方法。
- 記下目前的路由設定。在 v2rayN 的路由設定中記下目前方案、規則順序與預設出口;Android 端也要記下目前啟用的路由模式。更新資料時不要同時更換路由範本。
- 保留現有資料。桌面端停止核心後,備份實際生效位置的兩個 dat 檔。Android 端優先使用應用程式內的更新功能,不要依賴檔案管理員強行修改應用程式的私人目錄。
- 確認資料來源。若使用自訂 Geo 更新網址,請確認回應內容確實是二進位資料檔,而不是下載說明頁、登入頁或錯誤頁面。檔名有
.dat不代表內容一定正確。 - 確認標籤相容性。不同資料來源的標籤不一定相同。規則引用的
cn、private或其他集合,必須存在於選用的檔案中。
v2rayN:更新 Geo 檔案並重新載入
v2rayN 不同版本、桌面版與傳統介面的選單配置可能不同。常見路徑是主視窗「檢查更新」→「更新 Geo 檔案」,部分版本會將 GeoIP 與 GeoSite 分成個別更新項目。以下依常見路徑說明;若選單名稱不同,請尋找 Geo 資料更新項目,不要以「更新訂閱」取代。
-
記錄目前設定
記下目前節點、啟用中的路由與核心類型。若準備手動替換,請先結束程式並備份原始檔;建議優先使用用戶端內建的更新功能。
-
更新資料
開啟「檢查更新」→「更新 Geo 檔案」。若 GeoIP、GeoSite 分別列出,請依序更新兩項並各自確認結果,不要把其中一項成功當成全部完成。
-
處理下載失敗
先確認一般網路與目前代理是否可用。若該版本提供透過代理更新的選項,可在代理連線成功後重試;不要透過原本就無法使用的代理反覆下載。
-
重新啟動核心服務
更新完成後重新啟動核心服務。若找不到對應按鈕,可從系統匣選單結束 v2rayN,再重新啟動程式,避免只關閉視窗但核心仍在背景執行。
-
確認啟動結果
開啟記錄區,確認沒有資料檔讀取失敗、標籤不存在或規則載入失敗等訊息。維持原本的路由方案,再測試網站連線。
需要手動更新時,不要預設「程式目錄下同名檔案」就是核心實際使用的檔案。安裝方式、核心目錄與資源目錄設定都可能影響檔案位置。先查閱用戶端設定及啟動記錄中的資源路徑;停止核心後替換正確位置的檔案,再重新啟動檢查。檔名必須是 geoip.dat 和 geosite.dat,避免系統隱藏副檔名後產生重複副檔名。
結論:先用內建更新,再檢查路徑
內建更新顯示成功但行為沒有改變時,先檢查啟用中的路由與核心是否重新載入;確認讀取路徑錯誤後,才手動替換檔案。將同一個檔案複製到多個目錄,會增加日後排查的難度。
v2rayNG:在應用程式內更新 Geo 資源
v2rayNG 的 Geo 更新入口會隨版本調整,常見位置是主畫面右上角的更多選單,名稱可能顯示為「更新 Geo 檔案」或「更新 Geo 資源」。部分版本會在「路由設定」頁面的更多選單提供此功能。先查看主畫面,再查看「路由設定」;以目前版本實際顯示的 Geo 更新項目為準。
-
確認連線方式
保留目前可用的節點。若目前網路無法直接存取資料來源,請先啟動代理連線;更新是否透過代理,仍取決於應用程式設定與實際網路接管範圍。
-
開啟更新功能
在主畫面右上角的更多選單尋找 Geo 更新項目;若沒有,請進入「路由設定」→右上角的更多選單尋找。不要使用訂閱群組的更新按鈕取代。
-
等待更新完成
執行更新並留意應用程式的回報。若兩種檔案需要分別更新,請逐一確認。失敗時先檢查網路與可用儲存空間,不要連續點擊而建立多個並行工作。
-
停止服務後再重新連線
更新完成後,點選主畫面的連線按鈕停止服務,再重新連線,讓核心重新載入資源。接著前往「路由設定」,確認啟用中的規則仍是預期方案。
若目前安裝的版本找不到 Geo 更新功能,請先在應用程式的版本資訊中記下版本,再確認該版本提供的操作入口;必要時可透過用戶端下載頁面選擇合適的安裝套件。不要將桌面端的檔案路徑照搬到 Android,也不要為了替換資料而任意清除應用程式儲存空間;清除資料可能同時移除節點、訂閱與自訂規則。
geosite:cn 和 geoip:cn 要怎麼寫
以下是 Xray、V2Fly 風格的路由片段,並非可獨立執行的完整設定。範例會先比對 cn 網域集合,再比對私人位址與 cn 位址範圍。direct 必須對應完整設定中實際存在的出站標籤;若你的直連出站使用其他名稱,也要一併替換。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"ip": [
"geoip:private",
"geoip:cn"
],
"outboundTag": "direct"
}
]
}
}
規則會由前往後檢查,最先符合的規則決定出口。上方的網域規則不需要先將網域解析為 IP;後續的 IP 規則是否會比對網域要求,則與 domainStrategy 有關。這是路由物件中的欄位,請勿與 DNS 設定或出站中的同名欄位混淆。
| 策略 | 網域要求的處理方式 | 排查重點 |
|---|---|---|
AsIs | 路由階段不會主動為 IP 規則解析網域;目標原本就是 IP 時,仍可參與 IP 比對 | 只設定 GeoIP 規則,無法保證網域要求會命中 |
IPIfNonMatch | 網域未命中規則時,嘗試解析為 IP 後繼續比對 | 前面的兜底規則可能讓後續沒有機會解析 |
IPOnDemand | 比對過程需要 IP 資訊時,嘗試進行解析 | 規則順序與 DNS 解析結果都可能影響最終出口 |
範例沒有設定最終兜底出站。完整設定中,請搭配預設出站與其他規則,明確決定未命中要求的去向。尤其不要在這些規則前放置一條涵蓋所有 TCP、UDP 連線的代理規則,然後期待後面的 cn 規則生效。
結論:先確認規則是否有機會命中
某個網站一直走錯出口時,先檢查前面是否已有範圍過廣的規則,再確認核心是否取得網域,最後檢查集合內容。只有集合內容確實過期時,更新 dat 檔才是直接的修復方式。
更新後如何驗證,以及出錯時如何還原
驗證時必須同時檢查核心啟動狀態與連線行為。瀏覽器能開啟頁面,只能說明目前存在可用路徑,不能證明流量經過指定出口。頁面快取、連線重用與 DNS 快取也可能掩蓋變化;測試前應重新建立連線,而不只是重新整理同一個頁面。
- 第一輪檢查載入狀態。重新啟動核心後查看記錄,確認檔案讀取與規則初始化是否成功。若檔案不存在,先檢查資源路徑;若標籤不存在,則確認資料來源與規則標籤是否相符。
- 第二輪檢查目標。選擇一個已確認屬於目標集合的網域,並記錄實際要求的主機名稱。一個網頁可能同時連線至多個網域,不能只根據主頁的出口推斷所有資源的路徑。
- 第三輪檢查出口。若用戶端記錄提供路由或出站標籤,請依據要求時間核對;必要時可暫時提高記錄詳細程度,排查後再恢復,避免長期記錄不必要的瀏覽細節。
- 最後還原設定。若更新後核心無法啟動,請停止服務並還原原始檔案;Android 端優先使用應用程式支援的資源更新方式,還原至已知可用的來源。還原後再次連線,暫時不要同時修改 DNS 與路由。
已更新訂閱,為什麼分流還是沒有變?
訂閱主要更新節點連線設定。請另外更新 Geo 檔案,並確認目前啟用的路由確實引用了這些集合。若路由只有手動設定的網域規則,更新 dat 檔不會改變這些項目。
顯示某個 geosite 標籤不存在,該怎麼辦?
先記下完整標籤,例如規則中冒號後方的集合名稱,再確認目前資料來源是否提供該標籤。將規則改為資料來源實際支援的標籤,或還原配套資料來源;反覆下載同一個檔案不會產生缺少的集合。
更新成功了,為什麼中國大陸網站仍透過代理?
依序檢查啟用中的路由、前置兜底規則,以及核心是否取得目標網域。若連線只向核心提供 IP,GeoSite 網域規則可能無法參與比對;此時應檢查連線方式與嗅探設定,而不是直接認定 cn 集合失效。
這兩個檔案需要每天更新嗎?
不必為了更新日期而頻繁更新。可定期維護,並在確認分類有變動或資料缺漏時更新。每次更新前保留一份已知可用的版本,更新後完成啟動與出口檢查,比一味追求最新日期更重要。
處理 Geo 資料問題時,每次只變更一個環節:先更新資料再驗證;確實需要修改規則時,再單獨調整規則。若同時更換節點、DNS、路由範本與資料來源,即使恢復連線,也難以判斷真正原因。若要了解系統代理、訂閱與路由的設定順序,可繼續閱讀入門指南或查閱術語表。