geoip.dat 与 geosite.dat 规则数据库:作用、更新方式与引用写法

介绍两个规则数据库文件的来源与结构,讲清 v2rayN 和 v2rayNG 中的更新入口,以及 geosite:分类、geoip:地区代码的引用写法和更新后的生效检查。

本文速览

本文适合已经导入节点、准备检查路由分流的用户。先区分域名分类与 IP 地址库,再按客户端更新实际使用的数据文件,最后用最小路由示例和日志验证命中结果。重点是把“文件下载成功”“分类能够加载”“请求走对出口”分开检查,避免反复更新却没有解决误分流。

两个数据库分别匹配什么

geosite.dat 保存按标签组织的域名条目;geoip.dat 保存按标签组织的 IP 地址段。它们是供内核读取的二进制数据文件,不是可直接粘贴到路由编辑框里的 JSON,也不保存订阅链接、节点密码或传输协议参数。

2 个文件
本文讨论的 DAT 资源
2 类匹配
域名分类与 IP 地址段
3 个出口
示例约定 direct、proxy、block

例如,geosite:cn 查询域名库中的 cn 分类,geoip:cn 查询地址库中的 cn 地址段。两者不是同一份名单:域名被归入某个分类,不代表它当前解析出的每一个地址都属于相同地区;使用境外 CDN 的站点尤其容易出现这种差别。

资源匹配对象典型引用边界
geosite.dat请求携带或内核识别出的域名geosite:cn依赖分类收录情况,不是实时 DNS 查询结果
geoip.dat目标 IP 地址geoip:cn仅反映 IP 地址段分类,不能据此判断服务运营主体
geoip.dat数据源定义的私有或保留地址集合geoip:private具体范围以该数据源的标签内容为准

只有 IP 的请求无法直接用域名分类匹配。域名请求能否进一步进行 IP 匹配,则与路由的域名策略和 DNS 解析有关。因而“更新了 geosite,所有应用都按域名分流”并不成立,还要检查客户端接收到的目标信息。

数据来源与更新方式选择

常见数据来自社区维护的域名名单和 IP 地址段项目,再由构建流程编译成 DAT 文件。域名条目可以包含完整域名、后缀匹配、关键词或正则等不同形式;地址库主要按标签聚合 CIDR 网段。Xray 与 V2Ray 生态中的这些文件有相应格式约定,但相同文件名并不保证不同来源具有相同标签。

客户端程序、内核程序、规则数据和路由规则是四层内容。更新 v2rayN 不等于已更新正在使用的 Geo 文件;更新 Geo 文件也不会自动重排自定义规则。切换数据源之前,应先记录规则中引用的标签,例如 cn、private 和业务分类,确认新来源确实提供它们。

客户端内置更新

推荐

由客户端按已配置的资源地址获取文件,并写入它管理的资源位置。更容易避免把新文件放进旧目录,更新日志也便于追踪失败环节。

适合:日常维护、沿用默认数据源、首次排查。

手动导入或替换

先确认当前内核实际读取的资源位置,再使用已知来源的文件。安卓端优先使用客户端提供的资源导入功能,不猜测应用私有目录。

适合:离线更新、内置下载不可达、需要固定数据版本。

切换自定义来源

同时核对下载地址、文件格式与分类清单。不要仅因为文件体积更大就替换;新增分类未必有用,缺少正在引用的分类反而可能阻止内核启动。

适合:明确依赖某个业务分类、能够维护规则引用的用户。

结论:先固定来源,再更新数据

保留现有资源和路由配置的备份,先在同一来源内更新并验证。只有确认需要的标签缺失时,再考虑换源;不要在一次排查中同时换源、改 DNS 和调整规则顺序。

v2rayN 更新与重载步骤

桌面端先确认当前连接使用 Xray 或 V2Ray 的 DAT 路由配置。本文示例不适用于其他格式的规则集。v2rayN 不同版本的菜单布局会调整,常见更新入口是主窗口「检查更新」中的「Geo 文件」或「更新 Geo 文件」;如果版本将其放入资源管理页,应以当前菜单名称和日志为准,不要把“更新订阅”当作规则数据更新。

  1. 记录现有设置

    打开「设置」→「路由设置」,记录当前启用的路由方案、规则顺序和使用的分类。另行备份自定义配置;有些版本保存方案后,还需要在主窗口选中该方案才会使用。

  2. 更新规则数据

    打开主窗口「检查更新」→「Geo 文件」,执行更新。分别查看 geoip.dat 与 geosite.dat 的结果,不要看到第一项成功就关闭日志。

  3. 核对下载结果

    若提示连接失败,先检查资源下载地址和更新操作是否需要经过当前代理。若返回内容无法解析,检查是否把网页地址填成了文件地址;有文件名并不代表内容就是 DAT 数据。

  4. 重启当前服务

    数据写入后重新启动当前连接,确保内核重新加载资源。只切换主窗口标签页不会重载;已经建立的长连接也不能代表新规则的处理结果。

  5. 检查启动日志

    确认没有出现资源打开失败、分类不存在或路由构建失败。随后重新发起测试请求;若客户端启用了自动恢复旧配置,还需确认运行的确实是刚保存的方案。

v2rayNG 的资源更新入口

安卓端 v2rayNG 使用 Xray 内核,Geo 数据通常由应用管理。提供独立资源管理页的版本,可从侧边菜单进入「Geo 资源文件」,在该页更新或导入资源;较早版本可能将「更新 Geo 文件」放在主界面右上角菜单。入口名称和布局有差异时,先查找 Geo 资源相关项目,而不是在订阅分组里寻找。

当更新必须经过代理时,要先保证已有连接可以访问资源服务器;当代理本身因为资源加载失败而无法启动时,应改用当前网络可访问的下载来源或离线导入。不要把“下载通道依赖代理”和“路由文件依赖更新”混在一起反复重试。

geosite 与 geoip 的引用写法

在 Xray 路由 JSON 中,geosite: 引用写入 domain 数组,geoip: 引用写入 ip 数组。分类名不是任意描述文字,必须存在于当前文件中。geoip:cn 中的 cn 是常用地区代码标签;private 则是数据集约定的特殊标签,不是国家代码。

{
  "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",
        "network": "tcp,udp",
        "outboundTag": "proxy"
      }
    ]
  }
}

这是一段路由配置示例,不是可单独启动的完整配置。它假定完整配置已经定义 direct 与 proxy 出口;如果需要阻断,还要另行定义并引用 block。这些标签只是名称,必须与实际 outbounds 对应,不能照抄后期待客户端自动创建出口。图形化规则编辑器通常只需要填写相应匹配字段,不应粘贴整段 JSON。

需要指定另一份文件时,Xray 支持类似 ext:custom-site.dat:cn 的外部资源引用。它要求对应文件位于内核可访问的资源位置,并包含该分类。普通使用场景先沿用默认文件名即可,不必为了更新数据引入外部文件引用。

更新后的生效检查与故障定位

验证应沿着“资源已加载 → 规则能命中 → 流量到达预期出口”的顺序进行。仅看网站能否打开不够:代理和直连都可能成功,而网页缓存会进一步掩盖路由变化。建议更新前后各记录一轮结果,保持节点、DNS 和测试目标不变。

现象优先检查处理动作
内核启动失败资源路径、文件内容、分类名查启动日志中的文件名与标签,恢复旧资源后逐项修正
更新成功但行为不变运行配置、服务重启、现有长连接重启连接服务,用新请求检查实际出口
域名规则没有命中目标域名可见性、分类收录、前置规则临时添加完整域名规则,区分数据缺项与请求信息缺失
IP 规则没有命中真实目标地址、域名策略、解析结果核对日志中的目标 IP,检查是否需要域名解析后再匹配
局域网服务被代理私有地址规则、规则顺序、局域网域名先检查具体目标地址,再设置明确的直连规则

可以在自有测试环境中请求 192.168.1.10:8080 的服务,用于检查局域网地址直连;这里的地址和端口只是测试示例,必须替换成网络内真实存在的服务。再选一个明确收录于当前域名分类的站点和一个应走代理的站点,分别观察访问日志中的目标与出口标签。没有启用访问日志时,可临时开启适当日志级别,测试完成后恢复,避免长期保存不必要的访问记录。

结论:先用单条规则隔离问题

对误分流域名临时添加一条置顶的完整域名规则:若出口随之改变,继续查分类收录和规则优先级;若仍不改变,先确认流量是否进入当前客户端、运行配置是否正确,以及内核是否获得了域名信息。

稳定后再删除临时测试规则,并记录本次数据来源、更新时间和有效分类。Geo 数据适合周期维护,但不必每遇到连接异常就更新:认证失败、服务器不可达和传输参数不一致,通常需要检查节点或协议设置,而不是修改地理分类。

v2rayN / v2rayNG 下载