網頁出口不如預期,不一定是節點失效。本文適合已成功連線,想調整中國大陸網站直連或區域網路存取方式的使用者:先分清網域資料庫與 IP 資料庫,再更新用戶端實際使用的資源,最後用易讀的 JSON 規則確認比對順序。關鍵是讓規則、資源檔與執行中的核心彼此相符,而不是反覆更新訂閱。
兩種 dat 檔案分別比對什麼
geosite.dat 儲存依標籤分類的網域集合,geoip.dat 則儲存依標籤分類的 IP 位址範圍。這些是路由查詢用的資料檔,不是節點訂閱,也不會提供伺服器位址、帳號或傳輸參數。更新資料庫不會自動新增節點,也不會替你建立分流規則。
| 項目 | geosite.dat | geoip.dat |
|---|---|---|
| 比對對象 | 請求中的網域 | 目的 IP 位址 |
| 常用表示法 | geosite:cn | geoip:cn、geoip:private |
| 規則欄位 | domain | ip |
| 常見誤解 | cn 是集合標籤,不是只比對 .cn 網域 | IP 的所在地不等於網站所屬地區 |
geosite:cn 的實際內容由資源維護者決定。某個網域是否收錄、是否包含特定子網域,取決於該集合的資料,不能只靠網域後綴推測。即使檔名同為 geosite.dat,也可能來自不同資料來源,包含不同標籤。
geoip:private 常用於讓區域網路等非公網目的地直接連線。以下列出常見的私有 IPv4 位址範圍;這只是常見範例,並非該標籤的完整內容。
重點:先確認請求帶的是網域還是 IP
連線到路由器的 192.168.1.1 時,先檢查 IP 規則;網站出口不如預期時,先檢查網域規則。不要試圖更新網域資料庫,來修正寫錯的區域網路 IP 規則。
v2rayN:更新 Geo 資源並確認生效
桌面版先確認目前設定使用的核心與資源格式。以下步驟適用於使用 Xray 或 V2Fly 核心、讀取 dat 資源的設定。若目前設定採用其他資源格式,更新 dat 檔案不會影響該組規則。選單名稱可能因用戶端版本而異,請以目前介面為準,也不要在安裝目錄中批次取代同名檔案。
-
保留目前規則
在主畫面開啟「設定」→「路由設定」,記下目前啟用的路由設定與規則順序。若使用自訂設定,也請另存原始 JSON 檔,以便後續比對。
-
執行資源更新
若目前版本提供此選項,請開啟「檢查更新」→「更新 Geo files」。等候更新作業完成,不要把「更新訂閱」當成替代步驟。
-
確認更新記錄
查看主畫面的記錄,確認 geoip 和 geosite 各自的處理結果。若只有一個檔案更新成功,應先處理另一個失敗項目,不要直接認定分流已恢復正常。
-
重新啟動目前服務
更新完成後,重新啟動核心服務,或關閉用戶端再重新開啟。重新載入網頁連線後,查看最新的路由記錄;既有長連線不適合用來驗證規則更新。
下載失敗通常分成兩種情況:要求資源時逾時,代表需要排查更新連線;下載完成後啟動出錯,則應檢查檔案格式與集合標籤。若用戶端提供透過代理更新資源的選項,可在已有可用連線時試用。更換資料來源後,尤其要確認自訂規則引用的標籤仍然存在。
v2rayNG:從資源檔入口更新
Android 版 v2rayNG 使用 Xray 核心。支援資源管理的版本,可從左上角選單進入「資源檔」,查看資源項目,並使用頁面上的更新功能取得新檔案。不同版本可能顯示文字按鈕或更新圖示;操作前先確認項目檔名,避免只更新 geoip 卻漏掉 geosite。
-
確認目前使用的路由設定
從左上角選單進入「路由設定」,記下目前選取的模式與自訂規則。若使用完整的自訂 JSON,也要確認其中是否引用其他資料檔。
-
開啟資源檔
返回選單並進入「資源檔」,確認 geoip.dat、geosite.dat 對應的資源項目。舊版若沒有此選項,不要把檔案隨意複製到系統下載資料夾,就當作已匯入。
-
更新並查看結果
使用頁面上的更新功能,等候每項資源回報結果。若更新失敗,記下提示內容;網路逾時、資源網址無法使用與檔案無法載入,需分別處理。
-
重新連線測試
停止連線後重新啟動,再進入「記錄」查看啟動與連線紀錄。請用新的瀏覽器連線進行驗證,不要只看主畫面的連線按鈕是否顯示已啟用。
Android 的應用程式私有目錄與一般下載資料夾不同。手動下載檔案後,必須透過用戶端支援的匯入或資源管理流程,才能交由核心讀取。另一個容易忽略的前提是依應用程式代理:若瀏覽器未納入 VPN 接管範圍,修改核心路由不會改變該瀏覽器的出口。
- 更新訂閱:更新節點資訊與訂閱內容,通常不代表已更新核心的 Geo 資源。
- 更新資源:取代集合資料,不會自動啟用任何路由模式。
- 切換路由:決定哪些規則會參與比對,不會自動修復損壞或缺漏的資源檔。
路由 JSON:欄位、出口標籤與比對順序
以下是供 Xray/V2Fly 風格設定參考的 routing 片段,並非可獨立啟動的完整設定。範例假設已有名為 direct 和 proxy 的出站:前者指向直連出站,後者指向既有節點。標籤只是引用名稱,寫上 direct 並不會自動建立直連功能。
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
規則會依序檢查,第一條命中的規則決定出口。最後一條規則涵蓋一般 TCP、UDP 流量,因此必須放在具體規則之後。若把它提前放在第一條,後面的中國大陸直連規則就沒有機會處理這些連線。
| 欄位或寫法 | 含義 | 檢查重點 |
|---|---|---|
domain | 比對網域 | geosite:cn 應放在這裡 |
ip | 比對目的 IP | geoip:private 應放在這裡 |
outboundTag | 引用既有出站的 tag | 拼字與大小寫必須完全相符 |
AsIs | 不為路由比對額外解析網域 | 網域未命中時,不會主動查詢 IP 集合 |
此處選用 AsIs,是為了說明其行為:若傳入路由的是網域,而該網域不在 geosite:cn 中,核心不會只為了比對 geoip:cn 再解析一次位址,最後會套用代理規則。只有請求本身帶有 IP 時,才會直接檢查這裡的 IP 條件。
同一條規則中的 domain、ip、port 等不同條件通常必須同時符合;同一欄位陣列中的多個項目,則代表該欄位可接受的多個候選值。若要表達「網域屬於中國大陸,或 IP 屬於中國大陸」,應如範例拆成兩條規則,而不是把兩個欄位放進同一個物件。
自動更新或手動取代:依維護方式選擇
日常使用更需要穩定的資料來源與明確的更新結果,而不是每次都更換一組標籤。只有在內建資源確實缺少所需集合,或需要追查某次更新造成的變化時,手動管理才更有幫助。
用戶端內建更新
建議透過用戶端的 Geo 更新或資源檔入口執行更新,由用戶端管理資源位置。更新後仍須重新啟動服務,並確認記錄顯示載入成功。
適用情況:使用常見集合、希望減少路徑錯誤的日常設定
手動取代資源
先確認核心實際使用的資源目錄,保留舊檔後再進行取代。也要確認新檔案包含規則引用的標籤,不能只看檔名是否相同。
適用情況:使用自訂資料來源、需要固定資源版本或保留回復比對的設定
重點:一次只變更一個層面
先只更新資源並重新啟動,確認結果後再調整規則。若同時更換節點、修改 DNS、更換資料庫又重排路由,即使問題消失,也很難判斷是哪個步驟生效。
更新後出口仍不如預期:依記錄逐項排查
驗證時選三種目標即可:一個確實可連線的區域網路服務、一個預期直連的網站,以及一個預期透過代理連線的網站。記下測試目標、預期出口與實際記錄。不必製作複雜的測速表,先確認各類連線是否進入正確的出站。
- 啟動階段:檢查是否出現資源檔不存在、無法載入集合或找不到出站標籤等提示。若啟動失敗,先不要討論網頁命中了哪條規則。
- 連線階段:若記錄層級允許顯示連線紀錄,請查看目標與出站標籤。若沒有紀錄,先檢查系統代理、VPN 接管或依應用程式設定。
- 規則命中階段:若顯示代理出口,請確認前面的網域集合是否包含目標,以及是否有更早命中的寬泛規則。
- 連線階段:若已命中直連但仍無法開啟,請繼續檢查本機 DNS、目標服務與直連網路,不要把所有連線失敗都歸咎於資料庫。
更新完成後,為什麼仍顯示找不到 cn 集合?
先確認更新的是核心實際讀取的檔案,再檢查資料來源是否提供 cn 標籤。停止核心,還原先前可用的資源後重新啟動;若還原後恢復正常,再查看新資料來源的集合說明,不要只是不斷按下更新。
中國大陸網站仍走代理,應該把 geoip:cn 放在最前面嗎?
先確認請求帶的是網域還是 IP。使用 AsIs 時,把 IP 規則提前不會讓尚未解析的網域自動轉成 IP。請先檢查 geosite:cn 與更早命中的規則,再決定是否調整網域解析策略。
有 private 規則,為什麼仍連不上家中的裝置?
先用裝置實際的區域網路 IP 測試。若只用主機名稱時失敗,請另外檢查區域網路名稱解析;若 IP 也無法連線,請確認用戶端是否略過區域網路流量、VPN 是否接管該流量,以及目標服務是否監聽可連線的位址。
把 domain 和 ip 寫在同一條規則中,為什麼更難命中?
不同欄位並非簡單的「或」關係。請將中國大陸網域與中國大陸 IP 拆成兩個規則物件,依預期順序排列,再重新啟動核心。若用戶端的路由編輯器會自動產生設定,也要檢查最後產生的規則,而不只看輸入欄位。
最後請保留一份可正常運作的設定,以及資源來源紀錄。下次發生分流異常時,先比對規則順序與資源變更,再檢查連線路徑。如此才能分辨是集合內容變更、設定引用錯誤,還是流量根本沒有進入核心。