本文適合使用 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。兩種資料庫代表不同屬性,不能互相取代。
判斷重點:先確認位址範圍,再檢查區域網路規則
先用實際閘道位址確認直連規則,再檢查網站分類。上列三個區段是明確的私有 IPv4 範圍,不代表任何資料庫中 private 清單的完整內容;若還需要回環、鏈路本地或 IPv6 位址,請再核對資料來源。
二、規則檔來源與標籤相容性
常見來源包括 V2Fly 的 domain-list-community 網域集合、geoip 資料專案,以及 Loyalsoldier 等維護者建置的規則資料。來源專案可能提供文字清單,核心實際讀取的是建置後的 .dat 檔。請勿將網頁內容或原始網域文字改名為 geosite.dat。
用戶端預設來源
建議沿用用戶端目前設定的 Geo 資料下載來源,先確認現有路由使用的標籤都能正常載入。避免同時更換來源與規則,增加排查變數。
適用情境:一般分流、首次更新、還原既有設定
維護專案的建置檔
需要特定分類時,再選擇明確支援這些標籤的來源。記下來源名稱、更新時間與檔名,並確認標籤說明符合核心格式。
適用情境:自訂分類、固定資料來源、排查標籤缺漏
檔名相同不代表標籤完全一致。cn 通常都找得到,但細分服務、廣告分類及帶有屬性的集合,可能只有部分來源提供。若設定引用不存在的標籤,可能導致核心無法載入設定,而不只是單一規則失效。
- 先確認格式:本文的
geosite:、geoip:與 JSON 範例適用於 Xray/V2Fly 路由格式,不可直接套用到其他規則格式。 - 再確認標籤:查看資料來源公布的分類清單,不要只憑名稱猜測某個分類一定存在。
- 保留還原點:更新前備份現有的兩個檔案與路由設定;切換來源時,請將檔案和規則視為一組檢查。
三、在 v2rayN 更新 Geo 檔案的操作順序
桌面版請先確認目前使用的設定是以 Xray 還是 V2Fly 核心執行,再更新對應的資料檔。以下說明適用於提供「更新 Geo 檔案」選項的 v2rayN 介面;不同版本的選單分類可能不同,介面文字有差異不代表檔案已損毀。
-
備份路由設定
開啟「設定」→「路由設定」,記下目前啟用的路由方案與自訂規則。若曾手動管理 Geo 檔案,也請將原檔複製到備份資料夾。
-
更新資料
在主視窗開啟「檢查更新」→「更新 Geo 檔案」。等待更新完成,分別確認 geoip.dat 與 geosite.dat 的處理狀態;節點訂閱更新提示不代表規則資料庫已更新。
-
檢查記錄
查看主視窗的記錄或訊息區。若下載失敗,先檢查網路與來源網址;若顯示無法載入標籤,請核對引用名稱和資料來源,不要直接刪除整套路由設定。
-
重新載入
透過用戶端停止並重新啟動目前的連線,讓核心重新讀取資料。若用戶端更新時已自動重新啟動,仍請查看啟動記錄,確認沒有 Geo 檔案載入錯誤。
-
重新測試規則
保留原有節點、代理模式與 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 設定。尤其不要與出站中的同名或相似設定混淆:路由階段決定使用哪個出站,出站階段還要決定如何建立連線。
AsIs:路由階段不會為了 IP 規則主動解析網域。已有目標 IP 的請求仍可符合 IP 規則,但不能預期每個網域都會觸發 GeoIP 判斷。IPIfNonMatch:網域未符合任何規則時,嘗試解析 IP 後繼續判斷。若網域已符合前面的規則,通常不必為這次路由判斷再次解析。IPOnDemand:遇到需要判斷 IP 的規則時,就會觸發解析。若將 IP 規則排在前面,網域請求在路由階段可能更常進行 DNS 查詢。
因此,範例採用 IPIfNonMatch:先判斷已知的網域集合,未符合的目標再嘗試進行 IP 分類。不過,DNS 查詢本身透過哪條路徑傳送,仍取決於 DNS 伺服器、查詢規則與連線設定;只更新兩個資料檔,無法解決 DNS 污染或查詢逾時。
操作方式:先確認核心取得的是網域還是 IP
遇到「網域直連規則未生效」時,先檢查請求目標與路由記錄。若應用程式只將 IP 傳給核心,單獨更新 geosite.dat 也無法補回網域;請檢查應用程式的代理方式,必要時確認嗅探設定及適用範圍,再決定是否調整規則。
六、手動替換、驗證與常見錯誤
自動更新失敗時,可以手動取得同一維護來源建置的兩個檔案。替換前先停止核心,找出核心實際讀取資源的目錄,保留正確檔名,再重新啟動。桌面安裝版、免安裝版與 Android 應用程式的資源位置各不相同,沒有通用的目錄路徑。
- 確認讀取位置:以用戶端目錄說明、資源設定或記錄為準。不要因為程式目錄中有同名檔案,就認定核心執行時讀取的也是該檔。
- 確認下載結果:檔案不可為空,也不能是登入頁、錯誤訊息頁或壓縮檔。若系統隱藏副檔名,也請確認檔名沒有變成
geosite.dat.dat。 - 確認啟動成功:重新啟動後,檢查是否出現找不到檔案、資料解析失敗或找不到集合標籤等訊息。若啟動失敗,先還原備份,避免繼續疊加修改。
- 確認實際路由:在應用程式確實使用用戶端代理的前提下,分別連線至區域網路目標、預期直連目標與預期代理目標,並搭配可用的連線記錄檢查出站標籤。
| 狀況 | 優先檢查項目 | 處理方式 |
|---|---|---|
| 下載成功,仍顯示找不到檔案 | 執行中核心的資源目錄與檔名。 | 將檔案放到實際讀取位置,然後重新啟動核心。 |
| 更新後顯示某個標籤不存在 | 新來源是否提供該標籤。 | 還原舊資料,或依新來源的分類調整相應規則。 |
| 網站仍使用錯誤的出站 | 規則順序、網域是否可見、目前選用的路由方案。 | 檢查最先符合的規則,並確認編輯的是目前正在使用的路由。 |
| 核心啟動正常,但網站無法開啟 | 節點連線、DNS、目標服務狀態。 | 先區分連線故障與分類問題,再參考故障排除逐項檢查。 |
Geo 檔案需要每天更新嗎?
沒有規定一定要每天更新。分類變更、位址分配調整及維護專案修正,才是更新的實際效益。可以先每週檢查一次,遇到分類錯誤或需要新增標籤時再手動更新;若用戶端沒有 Geo 定時更新功能,也不要將訂閱自動更新間隔當成替代方案。
更新資料庫會自動設定中國大陸直連嗎?
不會。資料檔只提供集合,仍須有規則引用 geosite:cn 或 geoip:cn,並指向有效的直連出站。如果目前模式未使用這套路由,資料庫再新也不會改變連線結果。
為什麼檔案修改時間變了,分類卻沒有改變?
修改時間只能表示本機檔案曾被寫入,無法證明所需項目有變動,也無法確認核心已重新讀取。依序核對資料來源內容、執行時路徑、核心是否重啟,以及實際符合的規則,比一再下載更有效。