本文重點

網頁出口不如預期,不一定是節點失效。本文適合已成功連線,想調整中國大陸網站直連或區域網路存取方式的使用者:先分清網域資料庫與 IP 資料庫,再更新用戶端實際使用的資源,最後用易讀的 JSON 規則確認比對順序。關鍵是讓規則、資源檔與執行中的核心彼此相符,而不是反覆更新訂閱。

兩種 dat 檔案分別比對什麼

geosite.dat 儲存依標籤分類的網域集合,geoip.dat 則儲存依標籤分類的 IP 位址範圍。這些是路由查詢用的資料檔,不是節點訂閱,也不會提供伺服器位址、帳號或傳輸參數。更新資料庫不會自動新增節點,也不會替你建立分流規則。

項目geosite.datgeoip.dat
比對對象請求中的網域目的 IP 位址
常用表示法geosite:cngeoip:cn、geoip:private
規則欄位domainip
常見誤解cn 是集合標籤,不是只比對 .cn 網域IP 的所在地不等於網站所屬地區

geosite:cn 的實際內容由資源維護者決定。某個網域是否收錄、是否包含特定子網域,取決於該集合的資料,不能只靠網域後綴推測。即使檔名同為 geosite.dat,也可能來自不同資料來源,包含不同標籤。

geoip:private 常用於讓區域網路等非公網目的地直接連線。以下列出常見的私有 IPv4 位址範圍;這只是常見範例,並非該標籤的完整內容。

10.0.0.0/8
私有 IPv4 位址範圍
172.16.0.0/12
涵蓋 172.16 至 172.31
192.168.0.0/16
家用區域網路常見範圍

重點:先確認請求帶的是網域還是 IP

連線到路由器的 192.168.1.1 時,先檢查 IP 規則;網站出口不如預期時,先檢查網域規則。不要試圖更新網域資料庫,來修正寫錯的區域網路 IP 規則。

v2rayN:更新 Geo 資源並確認生效

桌面版先確認目前設定使用的核心與資源格式。以下步驟適用於使用 Xray 或 V2Fly 核心、讀取 dat 資源的設定。若目前設定採用其他資源格式,更新 dat 檔案不會影響該組規則。選單名稱可能因用戶端版本而異,請以目前介面為準,也不要在安裝目錄中批次取代同名檔案。

  1. 保留目前規則

    在主畫面開啟「設定」→「路由設定」,記下目前啟用的路由設定與規則順序。若使用自訂設定,也請另存原始 JSON 檔,以便後續比對。

  2. 執行資源更新

    若目前版本提供此選項,請開啟「檢查更新」→「更新 Geo files」。等候更新作業完成,不要把「更新訂閱」當成替代步驟。

  3. 確認更新記錄

    查看主畫面的記錄,確認 geoip 和 geosite 各自的處理結果。若只有一個檔案更新成功,應先處理另一個失敗項目,不要直接認定分流已恢復正常。

  4. 重新啟動目前服務

    更新完成後,重新啟動核心服務,或關閉用戶端再重新開啟。重新載入網頁連線後,查看最新的路由記錄;既有長連線不適合用來驗證規則更新。

下載失敗通常分成兩種情況:要求資源時逾時,代表需要排查更新連線;下載完成後啟動出錯,則應檢查檔案格式與集合標籤。若用戶端提供透過代理更新資源的選項,可在已有可用連線時試用。更換資料來源後,尤其要確認自訂規則引用的標籤仍然存在。

v2rayNG:從資源檔入口更新

Android 版 v2rayNG 使用 Xray 核心。支援資源管理的版本,可從左上角選單進入「資源檔」,查看資源項目,並使用頁面上的更新功能取得新檔案。不同版本可能顯示文字按鈕或更新圖示;操作前先確認項目檔名,避免只更新 geoip 卻漏掉 geosite。

  1. 確認目前使用的路由設定

    從左上角選單進入「路由設定」,記下目前選取的模式與自訂規則。若使用完整的自訂 JSON,也要確認其中是否引用其他資料檔。

  2. 開啟資源檔

    返回選單並進入「資源檔」,確認 geoip.dat、geosite.dat 對應的資源項目。舊版若沒有此選項,不要把檔案隨意複製到系統下載資料夾,就當作已匯入。

  3. 更新並查看結果

    使用頁面上的更新功能,等候每項資源回報結果。若更新失敗,記下提示內容;網路逾時、資源網址無法使用與檔案無法載入,需分別處理。

  4. 重新連線測試

    停止連線後重新啟動,再進入「記錄」查看啟動與連線紀錄。請用新的瀏覽器連線進行驗證,不要只看主畫面的連線按鈕是否顯示已啟用。

Android 的應用程式私有目錄與一般下載資料夾不同。手動下載檔案後,必須透過用戶端支援的匯入或資源管理流程,才能交由核心讀取。另一個容易忽略的前提是依應用程式代理:若瀏覽器未納入 VPN 接管範圍,修改核心路由不會改變該瀏覽器的出口。

路由 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比對目的 IPgeoip:private 應放在這裡
outboundTag引用既有出站的 tag拼字與大小寫必須完全相符
AsIs不為路由比對額外解析網域網域未命中時,不會主動查詢 IP 集合

此處選用 AsIs,是為了說明其行為:若傳入路由的是網域,而該網域不在 geosite:cn 中,核心不會只為了比對 geoip:cn 再解析一次位址,最後會套用代理規則。只有請求本身帶有 IP 時,才會直接檢查這裡的 IP 條件。

同一條規則中的 domain、ip、port 等不同條件通常必須同時符合;同一欄位陣列中的多個項目,則代表該欄位可接受的多個候選值。若要表達「網域屬於中國大陸,或 IP 屬於中國大陸」,應如範例拆成兩條規則,而不是把兩個欄位放進同一個物件。

自動更新或手動取代:依維護方式選擇

日常使用更需要穩定的資料來源與明確的更新結果,而不是每次都更換一組標籤。只有在內建資源確實缺少所需集合,或需要追查某次更新造成的變化時,手動管理才更有幫助。

用戶端內建更新

建議

透過用戶端的 Geo 更新或資源檔入口執行更新,由用戶端管理資源位置。更新後仍須重新啟動服務,並確認記錄顯示載入成功。

適用情況:使用常見集合、希望減少路徑錯誤的日常設定

手動取代資源

先確認核心實際使用的資源目錄,保留舊檔後再進行取代。也要確認新檔案包含規則引用的標籤,不能只看檔名是否相同。

適用情況:使用自訂資料來源、需要固定資源版本或保留回復比對的設定

重點:一次只變更一個層面

先只更新資源並重新啟動,確認結果後再調整規則。若同時更換節點、修改 DNS、更換資料庫又重排路由,即使問題消失,也很難判斷是哪個步驟生效。

更新後出口仍不如預期:依記錄逐項排查

驗證時選三種目標即可:一個確實可連線的區域網路服務、一個預期直連的網站,以及一個預期透過代理連線的網站。記下測試目標、預期出口與實際記錄。不必製作複雜的測速表,先確認各類連線是否進入正確的出站。

更新完成後,為什麼仍顯示找不到 cn 集合?

先確認更新的是核心實際讀取的檔案,再檢查資料來源是否提供 cn 標籤。停止核心,還原先前可用的資源後重新啟動;若還原後恢復正常,再查看新資料來源的集合說明,不要只是不斷按下更新。

中國大陸網站仍走代理,應該把 geoip:cn 放在最前面嗎?

先確認請求帶的是網域還是 IP。使用 AsIs 時,把 IP 規則提前不會讓尚未解析的網域自動轉成 IP。請先檢查 geosite:cn 與更早命中的規則,再決定是否調整網域解析策略。

有 private 規則,為什麼仍連不上家中的裝置?

先用裝置實際的區域網路 IP 測試。若只用主機名稱時失敗,請另外檢查區域網路名稱解析;若 IP 也無法連線,請確認用戶端是否略過區域網路流量、VPN 是否接管該流量,以及目標服務是否監聽可連線的位址。

把 domain 和 ip 寫在同一條規則中,為什麼更難命中?

不同欄位並非簡單的「或」關係。請將中國大陸網域與中國大陸 IP 拆成兩個規則物件,依預期順序排列,再重新啟動核心。若用戶端的路由編輯器會自動產生設定,也要檢查最後產生的規則,而不只看輸入欄位。

最後請保留一份可正常運作的設定,以及資源來源紀錄。下次發生分流異常時,先比對規則順序與資源變更,再檢查連線路徑。如此才能分辨是集合內容變更、設定引用錯誤,還是流量根本沒有進入核心。