geoip.dat 与 geosite.dat 更新方法:V2Ray 路由规则数据库用法详解

路由规则不生效常因规则库过旧。说明 geoip 与 geosite 数据文件的作用、在客户端内更新的位置,以及 geosite:cn 等常用写法。

本文速览

geoip.dat 管 IP 地址集合,geosite.dat 管域名集合。本文适合已能连接节点、但遇到直连与代理分流异常的用户:先确认当前内核和路由模式,再更新实际被读取的数据文件,最后用规则顺序、DNS 策略和日志验证结果。更新订阅不能代替更新规则库,更新成功也不等于当前流量一定命中预期规则。

geoip 与 geosite:先分清匹配对象

V2Ray 与 Xray 的路由模块可以引用外部数据集合,避免把大量域名和 IP 网段逐条写入配置。geosite.dat 保存带标签的域名列表;geoip.dat 保存带标签的 IP 网段列表。文件本身不决定流量走向,只有路由规则引用这些集合,并指定出站,才会产生分流效果。

项目geosite.datgeoip.dat
匹配对象目标域名目标 IP 地址
常用引用geosite:cngeoip:cn、geoip:private
JSON 字段domain 数组ip 数组
常见偏差域名不在集合中,或连接未提供域名地址归属变化,或尚未获得目标 IP

geosite:cn 不是“所有以 .cn 结尾的域名”,而是当前数据源里名为 cn 的集合。集合可以包含其他后缀的域名,具体成员由数据源维护。geoip:cn 也不是按网页语言判断,而是按数据文件记录的 IP 网段匹配;它不能独立识别网站业务归属。

规则库过旧会漏掉新增域名或变化的网段,但不是所有异常都由旧文件引起。目标域名不可见、规则被提前截获、当前路由模式没有使用这份配置,都可能表现为“更新后仍不生效”。因此先记录现象,再更新,比直接反复替换文件更容易定位。

v2rayN 更新 Geo 文件:先确认内核再操作

v2rayN 是管理界面,实际读取规则库的是启动后的内核。本文的 .dat 用法针对 V2Ray 与 Xray;如果当前配置使用其他规则数据格式,不要只凭同一个客户端名称就套用文件路径。先查看启动日志中的内核名称和配置位置,再进行下面的更新。

  1. 记录当前状态

    在主界面记录当前服务器、系统代理状态和路由选择。保存现有路由设置;自定义配置还应保留可恢复的副本。排查期间不要同时更换节点与规则模式。

  2. 检查更新入口

    在提供此入口的 v2rayN 界面中,打开「检查更新」→「更新 Geo 文件」。不同界面构建的入口位置和译名可能变化;如果看不到该项,先查看当前界面的更新菜单,不要把「更新订阅」当成替代操作。

  3. 等待完成提示

    查看更新结果或日志,确认需要的两个数据文件都已完成下载。遇到超时,先确认更新源可达;更新操作如提供代理选项,可通过已验证可用的代理重试,不要连续重复点击。

  4. 重新加载内核

    更新完成后重新启动当前服务或内核;无法确认是否重载时,退出并重新打开 v2rayN。检查启动日志,确认没有文件不存在、读取失败或分类不存在的错误。

  5. 复测相同目标

    保留原来的节点和路由模式,重新打开之前异常的目标。建立新连接再看出站记录;更新前已建立的连接,不一定会重新经过路由判断。

更新失败时:选择内置更新或手动替换

优先使用客户端提供的更新入口,它更容易把文件放进当前环境使用的位置。不要照抄别人的绝对路径:便携目录、安装目录、用户数据目录以及自定义启动方式,可能使用不同的资源路径。磁盘上存在同名文件,也不代表运行中的内核读取了它。

客户端内置更新

推荐

从当前更新入口获取规则库,保留下载结果与启动日志。完成后重启内核,核对实际使用的数据目录,减少把文件放错位置的可能。

适合:日常维护、更新入口可正常访问

手动替换文件

从所选规则数据源的正式发布渠道取得对应的二进制数据文件。停止内核后备份旧文件,再放入已确认的资源目录;如果下载的是压缩包,先解压,不要把压缩包直接改名成 .dat。

适合:自动更新失败、明确知道资源目录与数据源

结论:先确认读取位置,再替换文件

手动更新前记录内核启动参数与资源目录;替换后立刻重启并检查加载错误。路径不明确时,先解决路径问题,不要向多个目录同时复制文件,以免下次更新无法判断生效的是哪份。

手动替换还要检查分类是否存在。不同数据源即使都叫 geosite.dat,也不一定提供相同标签;带 @ 的属性过滤写法同样依赖源文件内容。出现“找不到分类”时,应核对规则引用的集合与数据源说明,而不是修改节点协议。保留原文件可以让配置加载失败时迅速回退。

geosite:cn 与 geoip:cn 的路由写法

下面是合并到内核配置中的 routing 片段,不是可直接运行的完整客户端配置。它假定已有名为 direct 的直连出站;这些出站标签必须与实际配置完全一致。在 v2rayN 使用图形路由编辑时,可按相同逻辑填写域名、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"
      }
    ]
  }
}
2 个文件
示例引用的 Geo 数据文件
3 条规则
私有地址、域名集合、IP 集合
53 端口
传统 DNS 常用端口,查询路径另查

IPIfNonMatch 表示先尝试按现有目标信息匹配;域名请求没有命中规则时,再解析为 IP 尝试 IP 规则。它不是“所有请求先解析”。如果前面已经有一条覆盖全部域名的代理规则,匹配会在那条规则结束,后面的 geoip:cn 不会成为万能补救。

规则不生效:按顺序、域名与 DNS 排查

路由按规则从上到下判断,首次匹配后确定出站。数据库只回答“目标是否属于某个集合”,不会纠正前面已经命中的规则。因此,排查时应同时看路由列表、目标地址和日志中的出站标签,不要只看网页是否能打开。

  1. 确认模式:检查主界面当前路由选择是否为预期配置。全局代理或全局直连模式可能绕开你正在编辑的分流逻辑。
  2. 确认域名:如果应用只交给代理一个 IP,域名规则不一定能匹配。嗅探可能从部分协议中恢复域名,但并非覆盖所有连接,也不能保证每次成功。
  3. 确认 DNS:当路由需要 IP 判断时,解析结果会影响匹配。传统 DNS 常使用 UDP/TCP 53,加密 DNS 另有传输方式;网页连接走代理,不代表 DNS 查询也走同一路径。
  4. 确认顺序:检查前面是否有宽泛域名规则、端口规则或兜底规则。先用一条精确域名规则验证出站,再恢复集合规则,能区分规则库问题与配置顺序问题。
  5. 确认新连接:关闭目标页面或重启测试应用后重试。必要时短时启用更详细的日志,完成验证后恢复常用日志级别,并避免公开包含订阅地址与目标域名的完整日志。

如果精确域名能正确走指定出站,而替换成 geosite:cn 后不匹配,重点核对该域名是否真的属于当前集合。如果精确规则也不生效,先检查当前配置是否生效、出站标签是否正确以及前置规则是否截获;此时继续下载规则库通常没有帮助。

Geo 文件更新常见问题

提示更新成功,为什么还是走错线路?

先重启内核,再建立新连接。检查当前路由模式和日志中的出站标签;随后临时添加目标的精确域名规则做对照。精确规则生效而集合规则不生效时,再核对集合内容与实际读取路径。

两个文件必须每天一起换吗?

不必每天机械更新。可在发现分类变化、开始维护路由或数据源发布重要调整时更新。客户端支持统一更新时可一并处理;自定义数据源则应确认各自标签仍能满足当前规则,并保留可回退文件。

报 geosite 分类不存在,要重新添加订阅吗?

先核对报错里的标签拼写,再确认 geosite.dat 的来源与分类列表。必要时恢复上一份可用文件,或把规则改为数据源实际提供的分类。重新添加订阅不会给数据文件补上缺失标签。

安卓客户端也能直接照搬桌面目录吗?

不能照搬目录。v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核,应在各自客户端提供的资源更新入口操作;具体入口以当前界面为准。移动端应用数据目录由系统管理,桌面配置片段也要结合客户端支持的导入方式使用。

下载v2rayN