本文適合已能正常使用 v2rayN 或 v2rayNG,卻發現中國大陸網站繞經代理、網域分流失效,或規則標籤無法識別的使用者。內容涵蓋兩類 Geo 資料的比對邏輯、桌面版與 Android 版的更新步驟、版本檢查方法、規則驗證指令及故障處理;完成操作後,即可判斷問題來自資料檔案、規則順序或 DNS 解析,無須反覆更換節點。
GeoIP 與 GeoSite 分別解決哪些問題
V2Ray 與 Xray 的路由模組需要先識別連線目標,再決定交由直連、代理或阻斷出站。若目標是 IP 位址,可透過 GeoIP 資料集合判斷其所屬網路範圍;若目標仍保留網域名稱,則可透過 GeoSite 資料集合判斷網站類別。這兩個檔案都不是客戶端程式本身,也不會改變 VMess、VLESS 等協定參數,只為路由比對提供資料。
geoip.dat 儲存依地區或用途整理的 IP 網段。常見規則寫法包括 geoip:cn 與 geoip:private:前者通常用於比對中國大陸 IP,後者則用於比對區域網路、迴路位址等保留網段。資料庫過舊時,新分配的位址範圍可能無法命中原有集合,結果便會落到最後一條備援規則。
geosite.dat 儲存依類別整理的網域集合。常見標籤包括 geosite:cn、geosite:geolocation-!cn,以及部分資料來源提供的分類標籤。它比對的是網域,而不是網頁內容。某個網站更換網域、增加靜態資源網域或調整服務入口後,舊資料可能只命中主網域,卻遺漏圖片、API 或登入網域。
| 資料檔案 | 主要比對對象 | 典型規則 | 常見用途 |
|---|---|---|---|
geoip.dat |
IPv4、IPv6 網段 | geoip:private |
區域網路位址直連 |
geoip.dat |
地區 IP 集合 | geoip:cn |
中國大陸位址直連 |
geosite.dat |
網域與網域後綴 | geosite:cn |
中國大陸網域直連 |
geosite.dat |
境外網域集合 | geosite:geolocation-!cn |
交由代理出站 |
更新前先記錄版本、路徑與現有規則
不要在連線異常時直接覆蓋所有檔案。先記錄客戶端版本、核心類型、目前的出站標籤與自訂路由規則,才能在更新後判斷變化來自哪一項。本文介面路徑以 v2rayN 7.x、v2rayNG 1.10.x 與 Xray 核心為操作基準,小版本可能調整選單文字,但檢查順序不變。
桌面版還要確認目前實際使用的核心目錄。v2rayN 可在「設定」→「參數設定」→「核心設定」中查看已選取的核心;不同安裝方式下,Geo 檔案可能位於程式資料目錄或對應核心目錄。不要只根據搜尋結果覆蓋第一個同名檔案,應先從執行記錄確認核心啟動路徑。
- 匯出或複製目前的自訂路由設定,重點保留
domain、ip、inboundTag與outboundTag。 - 在記錄中保存目前的核心版本及設定檔位置,避免混淆 v2fly 與 Xray 的執行目錄。
- 確認系統時間與時區正確。時間明顯偏差會影響更新請求及 TLS 連線,不應誤判為 Geo 資料故障。
- 保留目前可用的
geoip.dat與geosite.dat副本;回復時應成對還原兩份檔案。
桌面版檢查項目
- 客戶端
- v2rayN 7.x
- 選單
- 設定 → 參數設定
- 核心
- Xray 或 v2fly
- 記錄
- 查看核心啟動路徑
先確認實際核心目錄,再執行內建 Geo 檔案更新。
Android 版檢查項目
- 客戶端
- v2rayNG 1.10.x
- 核心
- Xray
- 入口
- 設定 → Geo 資源檔案
- 操作
- 下載並重新啟動服務
使用應用程式內的更新入口,不要透過檔案管理員覆蓋內部資料。
在 v2rayN 中更新 Geo 資料檔案
v2rayN 的內建更新入口會依目前版本下載對應資料,並替換核心讀取的檔案;優先使用此入口,比手動判斷目錄更可靠。開始前先停止目前的代理服務,避免核心程序仍占用舊檔案。若正在使用 TUN 模式,也應先關閉 TUN,再執行更新。
- 開啟 v2rayN 主視窗,在狀態列確認目前核心已停止執行。
- 進入「檢查更新」選單,選擇「更新 Geo 檔案」或名稱相近的 Geo 資料更新項目。部分 7.x 版本會將此入口放在更新子選單內。
- 等待介面顯示下載與替換完成。進度尚未結束前,不要退出客戶端。
- 開啟「設定」→「參數設定」→「核心設定」,再次確認目前選取的核心與剛才更新的目標一致。
- 啟動原有節點,再開啟記錄視窗,確認沒有出現找不到
geoip.dat、找不到geosite.dat或規則標籤不存在等錯誤。 - 重新啟用系統代理或 TUN 模式,分別使用一個中國大陸網域與一個需要代理的網域驗證出站結果。
若內建更新提示檔案被占用,先退出 v2rayN,再在工作管理員中確認對應核心程序已結束,然後重新開啟客戶端執行一次。若提示寫入失敗,應檢查程式目錄是否具有目前帳戶的寫入權限。不要長期以系統管理員模式執行來掩蓋目錄權限問題;更穩妥的做法是將程式資料放在帳戶可寫入的位置。
手動替換只適用於已取得可信資料檔案,且明確知道目前核心讀取位置的情況。操作時必須停止核心,將兩份舊檔案重新命名保存,再把新的 geoip.dat 與 geosite.dat 一起放入同一個資料目錄。只替換其中一個檔案,可能造成標籤涵蓋範圍不一致,增加排查時的變數。
在 v2rayNG 中檢查並更新 Geo 資源
v2rayNG 使用 Xray 核心處理路由,Geo 檔案由應用程式管理。Android 系統通常不會將應用程式內部資料目錄作為一般檔案目錄開放,因此應從 v2rayNG 的設定頁面更新,而不是將桌面版檔案複製到下載目錄後等待客戶端自動識別。
操作前先點選主畫面的停止按鈕,確認狀態列中的代理服務已結束。若啟用了「繞過區域網路」或自訂路由,也要記錄目前選項,因為更新資源不會自動修正規則順序。
- 開啟 v2rayNG,停止目前的連線。
- 進入右上角選單,依序開啟「設定」→「Geo 資源檔案」。不同小版本可能顯示為「Geo 檔案」或「更新 Geo 資料」。
- 分別執行 GeoIP 與 GeoSite 更新,等待兩項都顯示完成。網路較慢時,請讓應用程式保持在前景,避免系統中斷工作。
- 返回設定頁,進入「路由設定」,檢查預先定義的規則與自訂規則是否仍處於啟用狀態。
- 回到主畫面重新啟動節點,再查看執行記錄,確認資源載入與路由初始化沒有報錯。
- 切換一次飛航模式後恢復網路,再進行網域與 IP 測試,以排除舊連線與 DNS 快取的影響。
| 更新後的現象 | 優先檢查位置 | 處理方式 |
|---|---|---|
| 服務無法啟動 | 執行記錄中的第一個錯誤 | 檢查檔案下載是否完整,並重新執行兩項更新 |
| 中國大陸網域仍經由代理 | 路由規則順序 | 將明確的直連規則放在最終代理規則之前 |
| 網域規則未命中 | DNS 與 domainStrategy | 確認路由階段是否仍保留網域名稱 |
| 部分應用程式沒有變化 | 應用程式連線快取 | 結束目標應用程式程序後重新建立連線 |
規則順序決定更新後的實際效果
Geo 資料只是提供可供比對的集合,最終出站仍由路由規則依序從上到下決定。更具體的區域網路、指定網域與指定 IP 規則應放在前面,範圍較大的地區集合放在後面,最後再設定代理或直連備援。若第一條規則已比對全部 0.0.0.0/0,後面的 GeoIP 規則便不會取得處理機會。
以下片段展示一種常見順序:私有位址先直連,中國大陸網域與 IP 再直連,境外網域交由代理。設定中的 direct 與 proxy 必須與實際出站標籤一致,不能直接照抄標籤名稱而忽略客戶端產生的設定。
{
"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",
"domain": ["geosite:geolocation-!cn"],
"outboundTag": "proxy"
}
]
}
}
IPIfNonMatch 表示網域規則未命中時,再解析 IP 並嘗試套用 IP 規則。它適合同時使用 GeoSite 與 GeoIP 的設定,但會增加一次解析程序。若設為 AsIs,核心不會為了 IP 路由主動解析網域;此時依賴 geoip:cn 的規則,可能無法處理仍以網域形式存在的目標。
- 將區域網路規則放在地區規則之前,避免印表機、路由器後台與本機服務進入代理出站。
- 將精確網域規則放在大範圍 GeoSite 標籤之前,方便覆蓋少數需要特殊處理的網站。
- 阻斷規則只使用目前資料檔案確實包含的標籤;記錄中出現標籤不存在時,應核對資料來源與標籤名稱。
- 最終備援規則只保留一個明確方向,避免多個空條件規則彼此遮蔽。
如何確認核心已載入新資料
僅憑「更新成功」提示,不足以證明路由已採用新資料。驗證應分為檔案載入、規則命中與實際出站三個層次。第一層查看啟動記錄,第二層檢查規則順序,第三層比較目標連線經由直連還是代理。分開檢查三個層次,才能避免將 DNS 快取、節點延遲或瀏覽器重複使用連線誤認為 Geo 檔案失效。
- 重新啟動核心後立即查看記錄,搜尋
geoip、geosite、failed與routing等關鍵字。 - 造訪一個路由規則明確指定直連的中國大陸網域,記錄中的目標網域、目標 IP 與出站標籤。
- 再造訪一個由
geosite:geolocation-!cn處理的網域,確認記錄顯示代理出站。 - 直接連線至一個已知 IP,檢查 GeoIP 規則是否參與比對。此步驟應與網域測試分開執行。
- 若使用本機 HTTP 或 SOCKS 入口,確認應用程式連線的連接埠與客戶端顯示值一致,例如常見組合中的
10808;不要使用舊連接埠測試新設定。
| 記錄資訊 | 含義 | 下一步 |
|---|---|---|
| 資源檔案無法開啟 | 路徑、權限或檔案狀態異常 | 停止核心後重新更新,並核對實際核心目錄 |
| 規則標籤不存在 | 目前 Geo 資料不含該標籤 | 改用現有標籤,或更新為相符的資料集合 |
| 全部命中最終規則 | 前置條件未命中 | 檢查網域是否已解析,以及規則排列順序 |
| 出站正確但無法存取 | 問題不在 Geo 分流層 | 繼續檢查節點、DNS、傳輸參數與目標服務狀態 |
更新頻率與常見問題
Geo 資料沒有適用於所有人的固定更新週期。一般使用情境可每月檢查一次;若經常調整自訂路由、需要識別新網域,或發現部分位址突然走錯出站,則可立即檢查。客戶端升級核心後,也應確認 Geo 檔案仍能正常載入;沒有異常時,不必每天重複更新。
更新應視為路由維護的一部分,而不是處理連線故障的萬用修復按鈕。節點無法使用、VMess 或 VLESS 參數錯誤、系統代理未開啟、連接埠被占用等問題,都不會因替換 Geo 檔案而自動解決。先根據記錄確認故障位於路由層,再執行資料更新。
更新後中國大陸網站反而走代理了?
先檢查 geosite:cn 與 geoip:cn 是否位於最終代理規則之前,再確認 domainStrategy 是否為會略過 IP 比對的 AsIs。修改後停止核心約 2 秒,再重新啟動。
只更新 geoip.dat 可以嗎?
技術上可以單獨替換,但不建議在排查故障期間這樣操作。GeoIP 與 GeoSite 通常會共同參與同一套路由,成對更新可減少標籤涵蓋範圍與產生時間不一致造成的判斷偏差。
v2rayNG 更新一直顯示逾時?
先連線至確認可用的節點,再到「設定」→「Geo 資源檔案」重新執行更新;同時關閉省電限制,並讓應用程式保持在前景。若一般網頁也無法存取,應先處理節點或 DNS 問題。
檔案更新了,為什麼舊連線沒有變化?
核心與目標應用程式都可能保留現有連線。依序停止代理服務、結束目標應用程式、等待 2 至 5 秒,再重新啟動核心與應用程式。使用瀏覽器測試時可建立獨立視窗,減少重複使用連線的影響。
自訂標籤提示找不到,該怎麼辦?
不同 Geo 資料集合包含的標籤並不完全相同。先從核心記錄抄下準確的標籤名稱,再檢查規則是否拼寫錯誤;無法確認標籤存在時,改用 cn、private 等目前檔案已驗證可識別的集合。