适合已经导入节点、正在排查分流或 Geo 资源报错的用户。先区分域名库与 IP 库,再按客户端更新资源;手动替换时核对内核实际读取目录,最后用路由日志验证引用标签与规则顺序。本文的 dat 文件和 JSON 写法针对 V2Ray/Xray 格式,不适用于其他格式的规则数据库。
1. GeoIP 与 GeoSite 分别匹配什么
geoip.dat 保存按标签组织的 IP 地址段集合,geosite.dat 保存按标签组织的域名规则集合。它们是供内核查询的二进制资源,不是节点列表,也不是订阅地址。更新资源不会更换服务器、端口或用户凭据。
GeoIP:匹配目标 IP
- 文件名
geoip.dat- 规则字段
ip- 常见引用
geoip:cn、geoip:private- 数据内容
- IPv4、IPv6 地址段集合
地域分类来自数据源,表示目标 IP 所属地址段,不代表服务运营主体所在地。
GeoSite:匹配目标域名
- 文件名
geosite.dat- 规则字段
domain- 常见引用
geosite:cn- 数据内容
- 完整域名、域名后缀等规则
是否包含某个标签,由所用数据库决定,不由标签名称自动生成。
geosite:cn 并不是“所有解析到中国 IP 的域名”。同样,geoip:cn 也不表示“所有中文网站”。一个域名可能使用境外 CDN,一个境外服务也可能拥有境内接入点。域名集合与 IP 集合应作为两类独立条件理解。
数据库只提供匹配所需的集合,真正决定直连、代理或拦截的是路由配置。即使文件更新成功,当前路由没有引用对应集合,也不会产生新的分流行为。
2. 更新前先记录内核、目录与回退点
v2rayN 是桌面客户端,生成配置后交给所选内核处理流量;v2rayNG 使用 Xray 内核。不要把客户端安装目录、配置保存目录和内核资源目录当成同一位置。尤其在桌面端切换内核后,之前替换的文件未必仍是当前进程读取的文件。
- 记录当前环境:在客户端的「关于」或版本信息区域记录客户端版本,在启动日志中记录内核名称与版本。保留原始报错,避免只记录“连不上”。
- 备份路由配置:保存自定义规则及现有 Geo 更新地址。若手动更换文件,还要备份原来的
geoip.dat与geosite.dat。 - 确认资源格式:本篇使用 dat 格式。不要把后缀不同的规则集改名为
geosite.dat,文件名相同不代表内部格式兼容。 - 控制变更范围:先更新资源,验证后再调整规则。不要同时升级客户端、替换内核、修改 DNS 和重排路由,否则难以定位变化来源。
3. v2rayN:优先用更新入口,再考虑手动替换
在提供该功能的 v2rayN 桌面界面中,打开顶部「检查更新」菜单,选择「更新 Geo 文件」。不同版本和界面布局可能调整菜单位置或文字,应以当前界面的 Geo 更新项为准。该操作与「更新订阅」不同,更新订阅只刷新服务器配置,不能代替规则资源更新。
- 确认更新网络可用:先用现有配置连接一个可用节点。如果更新入口区分直连与代理下载,按当前可访问的方式选择;浏览器能下载不代表客户端更新请求一定使用同一路径。
- 执行 Geo 更新:观察客户端日志,确认资源下载和保存完成。超时、连接中断、写入失败都不算成功,不要只看菜单已经关闭。
- 重新加载内核:更新结束后,通过客户端重新启动当前服务,或正常退出客户端再启动,让新文件进入下一次配置加载过程。
- 检查启动结果:确认没有资源加载错误,再测试直连规则与代理规则各一个目标。若新数据库缺少原规则使用的标签,先回退数据库或修改对应规则。
手动替换时,寻找实际资源目录
便携部署中可见的 bin 子目录只是定位线索,不是适用于所有安装方式的固定答案。先查看启动日志、内核启动参数和客户端目录设置,确定实际使用的资源位置;存在多份同名文件时,不要根据文件修改时间猜测。
- 停止客户端启动的内核进程,再备份目标目录中的旧文件,避免在资源读取期间覆盖。
- 从原先信任的数据发布来源取得兼容文件。若下载的是压缩包,先解压;保存下来的网页或下载错误页面不能作为 dat 文件使用。
- 按实际需要替换
geoip.dat、geosite.dat,保持文件名准确,并确认运行内核的账户具备读取权限。 - 若变更了数据提供方,重新核对路由用到的标签。资源能被解析,不代表它包含旧数据源的全部分类。
判断:先定位读取路径,再替换文件
看到多份同名数据库时,先用启动信息确认当前内核使用哪一份;不要向所有目录复制文件,以免下一次切换内核时出现无法追踪的配置差异。
4. v2rayNG:通过 Geo 资源入口更新
在 v2rayNG 主界面打开右上角「⋮」菜单,查找「更新 Geo 资源」相关项目;部分版本将名称显示为「更新 Geo 资源文件」。这里更新的是 Xray 使用的本地资源,不是订阅中的节点。如果当前版本没有对应项目,应先核对版本和功能说明,不要到系统下载目录随意覆盖同名文件。
- 保留原路由设置:记录当前路由模式、自定义规则以及资源来源设置。更新操作不应顺带改变这些配置。
- 执行资源更新:确保更新地址可达。若版本提供 Geo 资源自定义地址,填写返回对应二进制文件的地址,不要填发布页面或订阅链接。
- 检查每项结果:若界面分别报告 GeoIP、GeoSite 的下载状态,需要分别确认。只更新成功其中一项,不代表另一项也已替换。
- 重启连接:完成后停止再启动连接,检查内核日志,随后测试需要匹配的域名与局域网目标。
自定义资源来源应保持稳定。更换来源后,先检查现有规则引用的 cn、private 等标签是否存在。某些扩展分类只在特定数据集中提供,不能因为另一份教程使用过就直接照填。
5. geosite:cn 与 geoip:private 的引用写法
下面是 V2Ray/Xray 的 routing 字段示例,不是完整客户端配置。示例假定现有出站中已经定义了 direct 和 proxy 两个标签;实际标签不同,应一起调整。普通节点配置通常由客户端生成,不要把整个片段粘贴进订阅地址输入框。
{
"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"
}
]
}
}
- 域名集合写入
domain:geosite:cn引用geosite.dat内的cn分类。内核需要取得目标域名才能按这条规则匹配。 - IP 集合写入
ip:geoip:private常用于本地、私有网络相关地址;geoip:cn用于数据库归类为中国的地址段。 - 跨字段是同时满足:同一规则里同时写
domain与ip,不是“满足任意一项”。要表达域名或 IP 命中就直连,像示例一样拆成独立规则。 - 规则按先后匹配:把兜底的 TCP、UDP 代理规则放在最后。若放在最前面,后面的直连规则通常没有匹配机会。
IPIfNonMatch 表示域名阶段没有匹配结果时,再尝试解析并进行 IP 匹配。它不是“先解析全部域名再执行所有规则”。若使用 AsIs,仅有域名而没有目标 IP 的请求不会因为配置了 geoip:cn 就自动完成相同的解析匹配。DNS 结果也会影响最终 IP 分类,因此资源更新与 DNS 排查不能混为一谈。
私有 IPv4 地址段的核对基准
排查局域网直连时,可以先从下面三个 RFC 1918 地址段判断目标是否属于私有 IPv4 网络。它们只是具体核对点,不是 geoip:private 全部内容;回环、链路本地和 IPv6 相关范围需要另外考虑。
6. 更新后的验证与常见报错
验证分两层:先确认文件被成功加载,再确认请求命中了预期规则。下载完成、内核启动成功、网站可以打开,是三个不同结果。单次网页可访问不能证明直连规则已经生效。
- 看启动日志:搜索
geoip、geosite、failed等关键词,排除文件缺失、格式错误和分类不存在。 - 看实际出站:在日志可显示路由或访问记录的情况下,确认测试请求对应的出站标签。必要时临时提高日志级别,排查完再恢复,避免长时间积累访问记录。
- 固定测试条件:使用相同节点、相同路由模式和相同目标,关闭旧连接后重新发起请求。复用中的连接不会因数据库替换立即重新选择出站。
- 保留回退步骤:新资源导致启动失败时,停止内核,恢复原文件或原资源来源,再重启验证。回退成功后再逐项检查新增标签和资源格式。
提示找不到 geosite.dat,应该重新导入订阅吗?
先检查实际资源目录、文件名和读取权限,再执行客户端的 Geo 更新。订阅通常只提供服务器配置,重新导入不会补齐内核缺失的数据库。
出现 list not found,文件不是已经下载了吗?
这类信息通常表示规则引用的分类在当前数据库中不存在。记录报错中的标签,核对数据源;恢复原数据源,或将该规则改为当前数据库确实提供的分类。
资源更新超时,浏览器却能打开下载地址?
检查客户端更新请求是否走代理、代理入口是否已经可用,以及更新地址是否返回文件而非网页。若提供直连与代理两种更新方式,切换后重试,并以日志结果为准。
更新后国内网站仍走代理,下一步查哪里?
先确认当前路由引用了 geosite:cn 或 geoip:cn,再检查是否有更靠前的代理规则抢先命中。若应用只提交 IP,域名规则可能无法参与匹配,需要结合目标信息和解析策略检查。
需要每天手动更新数据库吗?
没有统一的每日更新要求。按数据源发布节奏安排维护,并在出现已确认的分类遗漏时更新。每次都保留可恢复的旧资源,比频繁更换不明数据源更便于排查。