本文适合已经导入节点、准备调整路由分流的用户。先区分域名集合与 IP 网段集合,再确认规则库来源、客户端实际读取位置和标签名称。按桌面端或安卓端步骤完成更新后,用启动日志与出站记录验证结果;出现缺失标签或分流异常时,按文件、配置、DNS 三层排查。
一、GeoIP 与 GeoSite:匹配对象不同
geoip.dat 保存按标签组织的 IP 网段集合,geosite.dat 保存按标签组织的域名规则集合。它们是供内核读取的二进制数据文件,不是订阅链接,也不包含可用的代理服务器。更新规则库只改变匹配依据,不会自动更新节点地址、端口或认证信息。
geoip.dat
- 匹配对象
- 目标 IP 与网段
- 配置字段
ip- 常见引用
geoip:cn- 私网引用
geoip:private
IP 所属分类不等于网站的语言、业务地区或实际访问质量。
geosite.dat
- 匹配对象
- 目标域名
- 配置字段
domain- 常见引用
geosite:cn- 数据内容
- 域名及相应匹配类型
域名分类由规则库维护者定义,标签存在与否取决于具体数据源。
例如,geosite:cn 表示引用名为 cn 的域名集合,不是根据域名后缀实时推断地区;geoip:cn 则引用对应 IP 网段集合。一个使用境外 CDN 地址的域名,可能命中前者而不命中后者。两种规则应分别配置,不能把 geosite:cn 放进 ip 数组。
这条流程表示域名与地址规则的关系,不代表每次连接都会执行 DNS 解析。是否解析、何时解析,还取决于目标原本是域名还是 IP,以及 routing.domainStrategy。内核只拿到 IP 时,域名规则通常没有可匹配的域名;嗅探可能补充部分连接的信息,但不能保证恢复所有域名。
二、规则库来源:先核对标签,再选择文件
常见来源包括 V2Fly 的 domain-list-community 域名分类数据、V2Fly 的 geoip 数据项目,以及 Loyalsoldier 的 v2ray-rules-dat 等衍生规则集。前者分别承担域名分类与地址数据的整理,衍生项目可能重新组合列表、增加类别或调整收录范围。同名文件并不意味着内部标签和分类语义完全相同。
- 核对发布物:需要的是客户端与内核支持的
.dat成品文件,不是源码目录、网页正文或压缩包本身。 - 核对标签:配置中每一个
geosite:、geoip:引用,都要能在对应来源的分类说明中找到。不要把其他格式规则集的标签直接搬过来。 - 核对更新地址:检查客户端设置的是哪个发布源;若使用自定义下载地址,确认返回的是文件内容,而不是需要登录的下载页面。
- 保留回退依据:记录来源、下载日期与原文件大小,并保存旧文件副本。切换来源时,把两个文件视为一组管理,减少标签预期不一致的问题。
判断:保持来源与标签一致,再安排更新
现有路由能正确加载时,优先沿用已确认的来源。只有需要新增分类或调整收录范围时再更换来源,并先逐条核对自定义路由中的标签。
三、v2rayN 更新:优先内置入口,手动替换要找准目录
v2rayN 是配置管理客户端,实际读取规则库的是所选内核。以下针对使用 V2Ray 或 Xray、且生成配置引用 Geo 数据的场景。不同发行版本的菜单文字和数据目录可能变化,不能只凭安装目录里存在同名文件,就认定它是当前内核读取的文件。
- 记录当前环境:在客户端中查看正在使用的内核,备份自定义路由与现有 Geo 文件。先不要同时升级内核或改动 DNS,以免更新后难以定位变量。
- 执行内置更新:打开主窗口的「更新」菜单,查找 Geo 文件更新项,常见名称为「更新 Geo 文件」。若版本将 GeoIP、GeoSite 分开列出,应分别执行;菜单名称以当前界面为准。
- 确认下载结束:在日志或通知区域检查两项下载是否成功。遇到超时,检查下载地址的可达性;若界面提供通过代理更新选项,先建立可用连接,再启用该选项重试。
- 重新加载内核:更新完成后执行重启服务,或断开后重新连接。随后检查启动日志,确认没有资源读取失败或分类缺失错误。
内置更新不可用时,再考虑手动替换。先从客户端日志、运行配置及内核资源设置确认实际资产目录;便携式目录、用户数据目录和内核程序目录可能不是同一个位置。若手动启动内核,还应检查是否设置了 V2RAY_LOCATION_ASSET 或 XRAY_LOCATION_ASSET 等资源定位环境变量。
- 完全退出客户端及其启动的内核进程,把实际使用的
geoip.dat与geosite.dat复制到独立备份目录。 - 将已下载的两个文件放入确认过的资产目录,保留原始文件名。注意系统隐藏扩展名时,不要形成
geoip.dat.dat。 - 确认当前用户对文件有读取权限,再启动客户端。若仍提示旧标签或资源错误,回查读取路径,不要继续向多个目录盲目复制文件。
订阅更新与 Geo 更新是两条操作。「订阅分组」中的更新主要处理服务器配置,通常不能代替 Geo 数据更新。订阅导入成功,也不能证明路由所引用的分类已经存在。
四、v2rayNG 更新:使用应用入口,不直接覆盖私有目录
v2rayNG 使用 Xray 内核,Geo 文件通常位于应用管理的数据空间内。安卓文件管理器中的「下载」目录不是内核资产目录;把文件放在那里,并不会自动参与路由。系统对应用私有目录的访问限制,也使桌面端的直接覆盖方法不能照搬到安卓端。
- 保存当前路由:打开侧边栏中的「路由」页面,记录当前模式和自定义规则。若使用自定义配置,同时保存原配置文本,方便出现异常时恢复。
- 查找资源更新入口:检查「路由」页面的右上角菜单,以及应用的设置菜单,寻找 Geo 资源更新项。不同版本可能显示为「更新 Geo 资源文件」或拆分为 GeoIP、GeoSite 更新项,以实际界面为准。
- 检查来源并下载:若提供资源地址设置,确认两个地址分别对应所需文件。先保证更新地址可访问,等待完成提示;只有明确提供导入功能的版本,才使用本地文件导入。
- 重连并验证:停止当前连接后重新启动,查看日志中是否有 Geo 文件加载错误,再使用下面的规则验证步骤检查出站。
如果当前版本找不到资源更新或导入入口,先查看该版本的内置帮助,必要时从客户端下载页选择合适安装包。不要为了替换两个文件而先清除应用数据;清除数据可能同时移除节点、分组和路由设置。更新期间也不必重建已经正常工作的 VMess 或 VLESS 节点。
五、路由写法:标签、出站与匹配顺序一起检查
下面是 V2Ray/Xray 的 routing 配置片段,用于说明 GeoSite 与 GeoIP 的字段位置,不是可单独启动的完整配置。它要求现有 outbounds 中已经定义名为 direct 的直连出站。图形客户端可能生成不同的标签名,粘贴前必须核对,不能仅凭显示名称推断内部标签。
{
"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"
}
]
}
}
IPIfNonMatch 表示域名在当前匹配过程中未命中规则时,按该策略尝试解析 IP,再参与地址规则匹配。它不等于「所有域名都先解析」,也不会替你配置一个可用的 DNS。AsIs 不会为了路由主动将域名解析成 IP;IPOnDemand 则会在匹配需要 IP 的规则时触发相应解析,可能更早产生 DNS 查询。
| 检查项 | 本例写法 | 容易遗漏的条件 |
|---|---|---|
| 域名分类 | domain: geosite:cn | 实际 JSON 使用 domain 数组,且数据源包含 cn 分类 |
| 地址分类 | ip: geoip:cn | 需要目标本身为 IP,或路由策略取得解析结果 |
| 直连出站 | outboundTag: direct | 现有 outbounds 中存在完全同名的标签 |
| 未匹配流量 | 由现有配置决定 | 没有兜底规则时,通常使用首个出站 |
规则按顺序匹配,先命中的规则决定出站。需要强制代理的具体域名例外,应放在宽泛直连分类之前;如果把所有流量的兜底规则放到开头,后面的 Geo 规则就没有机会生效。上例没有规定其他流量必须代理,实际使用时还要检查客户端生成的最终出站顺序与兜底规则。
DNS 与路由分开验证。域名分类只能决定匹配方向,不能修正已经得到的错误解析结果。若域名规则命中正确但连接目标异常,应继续检查 DNS 服务器、解析出站和缓存,而不是反复更换 dat 文件。
六、更新验证:从加载成功到实际命中
下载完成只是第一步。可靠的验收需要同时确认文件可读取、分类可加载、连接走对出站。建议每次只改一组变量:先更新文件并重启,再调整路由;不要同时切换节点、修改 DNS 和更换数据源。
- 检查启动:搜索包含
geoip、geosite、failed或not found的日志。若提示加载某个分类失败,先核对标签拼写和数据源,而不是判断节点失效。 - 选择样本:从当前来源的分类清单中选一个确认收录的域名,再选一个不应走该分类的域名。不要仅根据域名后缀猜测它是否属于
cn。 - 建立新连接:关闭原页面的长连接或重启测试应用,再访问样本。已建立的连接不会因为路由文件变化自动重新选择出站。
- 对照访问记录:在内核访问日志可用时查看目标地址与出站标签。若客户端没有显示规则命中编号,可用一次只启用一条测试规则的方式缩小范围,完成后恢复原配置。
- 验证回退:如果只有新文件导致启动失败,停止服务并恢复备份,重启验证。若恢复后仍异常,应继续检查配置和 DNS,不要把全部原因归到规则库更新。
访问日志可能包含域名、目标地址等使用信息。临时提高日志级别完成定位后,应恢复日常设置;向他人提供日志前,删除节点凭据、订阅地址及个人访问记录。
七、常见问题:缺失分类、更新无效与误分流
更新后提示 geosite 分类不存在,应该重新下载吗?
先检查报错中的具体标签,再到当前数据源的分类说明中核对。文件能够读取但标签不存在,通常需要改用该来源支持的标签,或恢复原来源。重复下载同一份数据不会凭空增加分类。
两个文件已经替换,为什么行为和更新前一样?
先重启内核,再核对实际读取目录。还要确认当前模式确实启用了包含 Geo 引用的路由;如果使用全局代理或更靠前的兜底规则,更新分类也不会改变这些连接的出站。
geosite:cn 已经直连,为什么某些国内网站仍走代理?
检查连接的实际域名是否在当前 cn 集合中,并查看是否被前置规则覆盖。如果应用直接连接 IP,域名分类可能无法参与匹配;此时应结合地址规则和域名获取方式排查,不要直接把全部目标设为直连。
Geo 文件需要每天手动更新吗?
更新频率应由分类变更需求决定。已有规则稳定时,可使用客户端提供的更新机制定期维护;出现新域名未收录或地址分类变化时,再检查来源发布记录。保留可回退文件比频繁更换来源更有助于定位问题。