本文适合已经在 v2rayN 中启用路由规则、但遇到新域名误分流、Geo 文件更新失败或手动替换后内核无法启动的用户。先确认当前 Core 类型和实际文件目录,再优先使用内置更新;需要离线处理时,按停止内核、备份旧文件、替换同名文件、重启验证的顺序操作。
两个数据库分别匹配什么
geosite.dat 保存按用途或地域整理的域名集合。路由规则中的 geosite:cn、geosite:category-ads-all 等写法并不是一个域名,而是要求内核读取对应标签下的一组域名。访问目标仍处于域名阶段时,内核可以直接用这类规则决定走直连、代理或阻断出站。
geoip.dat 保存 IP 地址段与标签之间的对应关系。规则 geoip:cn 会匹配目标 IP 所属地址段,geoip:private 则用于识别局域网和其他非公网范围。目标已经解析成 IP,或者连接本身直接使用 IP 地址时,GeoIP 规则才是主要判断依据。
两份文件解决的是路由匹配,不负责提供订阅节点,也不会改变 VLESS、VMess 或传输层参数。数据库过旧时,典型表现是新域名未被现有标签收录、新分配地址段落入错误出站,或者规则中引用了新标签而旧文件无法找到该标签。
geosite.dat
- 匹配对象
- 域名
- 常用标签
- geosite:cn
- 判断时机
- 域名仍可识别时
- 主要用途
- 域名分组与广告域名处理
规则结果取决于标签内容、规则顺序和最终出站设置。
geoip.dat
- 匹配对象
- IPv4 与 IPv6 地址段
- 常用标签
- geoip:private
- 判断时机
- 目标为 IP 或完成解析后
- 主要用途
- 地址地域与私有网络分流
启用域名解析参与路由后,域名规则与 IP 规则可能先后命中。
常用标签与命中顺序
geosite:cn 通常用于匹配以境内服务为主的域名集合,常见处理方式是直连。它按维护好的域名清单工作,不等于“所有以特定后缀结尾的域名”,也不保证每个域名的服务器实际位于同一地区。
geoip:private 主要覆盖私有或保留地址,其中常见私有 IPv4 范围包括 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。局域网打印机、路由器管理页和家庭存储设备通常应在代理规则之前命中该标签并直连。
geosite:geolocation-!cn 表示数据库维护者归入相应非境内地理集合的域名,但它不是所有境外域名的绝对全集。没有命中任何标签的目标仍会落到最终规则,因此路由配置必须保留明确的兜底出站。
局域网优先
- 域名
- geosite:private
- 地址
- geoip:private
- 出站
- direct
- 位置
- 规则列表前部
先处理内网目标,避免管理页和本地设备进入代理。
境内资源直连
- 域名
- geosite:cn
- 地址
- geoip:cn
- 出站
- direct
- 兜底
- proxy
先匹配具体规则,再由最终规则接收未命中的连接。
| 标签 | 匹配内容 | 常见出站 | 检查重点 |
|---|---|---|---|
geosite:cn |
域名集合 | 直连 | 新域名是否已被收录 |
geoip:cn |
IP 地址段 | 直连 | 目标解析结果是否属于对应地址段 |
geoip:private |
私有与保留地址 | 直连 | 是否排在代理兜底规则之前 |
geosite:category-ads-all |
广告相关域名集合 | 阻断 | 阻断后是否影响页面必要资源 |
更新前确认 Core 类型与运行目录
先在 v2rayN 主界面记录当前版本和活动配置,再打开「设置」→「参数设置」→「Core 类型」。VLESS、VMess 等节点可以根据配置使用不同内核,Geo 文件必须放进当前实际启动的内核目录,而不是只看 v2rayN 主程序所在位置。
以 v2rayN 7.12.3 的便携目录作为检查示例,Xray 内核常见位置是 bin/Xray/,其中应能看到内核可执行文件以及 geoip.dat、geosite.dat。不同打包版本的目录大小写和层级可能变化,应以日志中显示的启动路径为准。
更新前退出正在运行的内核。只关闭主窗口可能仍保留托盘进程,因此需要在托盘菜单执行「退出」,再到任务管理器确认相关内核进程已经结束。文件被占用时强行覆盖,容易出现访问被拒绝、只替换一份文件或下次启动仍载入旧内容。
-
记录版本
打开「帮助」或「关于」,记录 v2rayN 版本;示例检查环境为 v2rayN 7.12.3。
-
确认内核
进入「设置」→「参数设置」→「Core 类型」,确认当前节点实际使用 Xray 还是 v2fly 内核。
-
定位目录
启动一次节点后查看运行日志,依据内核启动路径找到对应的
bin/Xray/或实际 Core 目录。 -
退出进程
从托盘菜单退出 v2rayN,并确认内核进程不再占用两个
.dat文件。 -
备份旧文件
复制原文件并命名为
geoip.dat.bak-20260730与geosite.dat.bak-20260730,便于快速回退。
使用 v2rayN 内置更新
常规更新优先使用 v2rayN 的内置入口。打开顶部「检查更新」菜单,选择「更新 Geo 文件」;部分 7.x 界面会显示为「更新 Geo files」。该操作会下载 Geo 数据并写入相应目录,完成后需要重启内核才能让已加载的数据重新读取。
更新期间不要同时切换节点、修改 Core 类型或启动第二个 v2rayN 实例。若界面提示下载完成,但文件修改时间没有变化,应先检查写入权限和安全软件的文件隔离记录,再确认当前运行目录是否与观察目录一致。
-
停止内核
在主界面停止当前服务器,避免更新程序与内核同时访问 Geo 文件。
-
执行更新
打开「检查更新」→「更新 Geo 文件」,等待状态栏或日志给出完成结果。
-
核对时间
在实际 Core 目录查看两份文件的修改时间,确认
geoip.dat与geosite.dat都已更新。 -
重启内核
重新选择活动服务器并启动,观察前 30 秒日志,确认没有文件读取或标签缺失错误。
-
测试分流
分别访问一个局域网地址、一个应直连域名和一个应代理域名,核对路由日志中的出站标记。
手动替换 geoip.dat 与 geosite.dat
内置更新受网络、权限或下载源状态影响时,可以手动替换。应从与当前内核相适配的正式发布资源中取得完整的 geoip.dat 和 geosite.dat,不要把网页响应、压缩包本体或文件名相似的说明文档直接改名使用。
替换时必须保持文件名完全一致。Windows 默认可能隐藏已知扩展名,表面显示为 geoip.dat 的文件实际可能是 geoip.dat.dat。在文件资源管理器中开启「查看」→「显示」→「文件扩展名」,再核对名称。
两份数据最好作为同一批次一起替换。只更新其中一份不一定立即报错,但域名规则与 IP 规则会处于不同更新时间,排查误分流时难以确认问题来自规则顺序、解析结果还是数据差异。
-
取得文件
下载适配当前内核的两份正式 Geo 数据,解压后确认文件名分别为
geoip.dat和geosite.dat。 -
完全退出
停止服务器并从托盘退出 v2rayN,确认 Xray 或 v2fly 内核进程已经结束。
-
保留备份
把 Core 目录中的旧文件复制到独立备份目录,不要只依赖系统覆盖确认框。
-
同名覆盖
将新文件复制到日志确认的 Core 目录,允许覆盖旧文件,并确认两个文件都写入成功。
-
启动验证
启动 v2rayN 和当前节点,检查日志是否出现无法加载 Geo 数据、找不到标签或文件格式异常。
-
异常回退
若内核无法启动,退出程序后恢复两份备份文件,再重新检查下载内容与内核类型。
v2rayN/
├─ v2rayN.exe
├─ guiConfigs/
└─ bin/
└─ Xray/
├─ Xray.exe
├─ geoip.dat
├─ geosite.dat
└─ 其他内核运行文件
验证更新是否真正生效
文件存在并不等于规则已经生效。内核启动时会读取数据,因此替换后只切换服务器、没有重启内核,旧进程仍可能继续使用内存中的旧数据。最稳妥的做法是退出 v2rayN 后重新启动,再执行三组可区分结果的路由测试。
第一组测试局域网地址,例如路由器管理地址 192.168.1.1,预期命中 geoip:private 并直连。第二组选择路由配置中明确归入 geosite:cn 的域名。第三组选择应由最终代理规则接收的域名,并在路由日志中对照目标、命中规则和出站名称。
如果使用本地 SOCKS 入站测试,可在浏览器或测试工具中填入 v2rayN 界面实际显示的端口;旧版常见示例是 127.0.0.1:10808。端口必须以当前客户端设置为准,端口错误会表现为连接失败,与 Geo 数据本身无关。
内置更新
推荐由 v2rayN 执行下载与写入,操作步骤少,适合日常定期维护。更新后仍需重启内核并检查路由日志。
适合:正常联网、目录权限完整的日常环境
手动替换
可以明确控制文件来源、替换目录和回退版本,适合内置更新超时或目标设备无法直接下载时使用。
适合:更新失败、离线转移或多目录排查
恢复备份
将同一批次的两份旧文件一起恢复,用于处理新文件损坏、标签不兼容或内核启动失败。
适合:替换后立即报错的快速回退
| 检查项 | 正常结果 | 异常时先查 |
|---|---|---|
| 文件名称 | 准确为两个 .dat 文件 |
扩展名是否重复、是否仍在压缩包内 |
| 修改时间 | 两份文件均为本次更新时间 | 目录权限与实际 Core 路径 |
| 内核启动 | 没有 Geo 数据加载错误 | 文件完整性、内核类型与占用进程 |
| 私有地址 | 命中 geoip:private 并直连 |
规则顺序和局域网绕过设置 |
| 域名分流 | 命中预期 geosite 标签 | 域名嗅探、DNS 解析与兜底规则 |
常见报错与处理顺序
日志出现“找不到 geosite 标签”一类错误时,先检查标签拼写和前缀,再确认当前 geosite.dat 是否包含该标签。自定义规则中的标签名称必须与数据库定义一致,不能把 geoip: 前缀用于域名标签,也不能把 geosite: 前缀用于 IP 地址集合。
出现文件访问被拒绝时,先完全退出托盘进程,再确认 v2rayN 所在目录具有当前用户的写入权限。若程序位于受保护目录,可以先把新文件复制到普通目录,退出客户端后再以具备相应权限的方式完成覆盖。
更新成功但分流结果不变时,按“实际 Core 路径、内核是否重启、规则顺序、DNS 解析结果、最终出站”依次排查。不要重复覆盖同一文件来代替日志检查;如果目标在域名阶段已经被更靠前的规则接收,更新 GeoIP 数据不会改变该次命中。
- 无法启动内核:恢复同一批次的两份备份文件,确认服务恢复后再重新取得适配文件。
- 只有一份文件更新:停止内核后再次执行更新,并检查另一份文件是否被占用或缺少写入权限。
- 局域网走代理:把
geoip:private与对应直连出站放到宽泛代理规则之前。 - 域名命中异常:检查 DNS 返回的地址、域名嗅探设置以及是否先命中了完整域名规则。
- 标签无法识别:核对标签拼写、数据库批次与当前内核,不要将域名标签和 IP 标签混用。
- 重启后仍读旧文件:查看日志中的内核路径,排除旧快捷方式或第二个 v2rayN 实例。
更新后的路由维护方法
Geo 数据更新只解决标签内容变化,不会自动修正自定义路由。更新后应保留少量、用途明确的规则:私有网络直连、必要的域名规则、境内资源规则、指定代理规则和最终兜底。规则越多,重叠命中的排查成本越高。
对必须稳定分流的业务域名,可以使用完整域名或后缀规则放在 Geo 标签之前;对范围较大的普通站点,再交给 geosite 与 geoip 标签处理。这样即使数据库内容调整,关键目标仍由显式规则控制。
每次更新后保存一次测试记录,至少写下 v2rayN 版本、Core 类型、两个文件的修改日期、三组测试目标和实际出站。下一次出现误分流时,可以直接比较变化发生在客户端、内核、Geo 数据还是 DNS 结果。
- 保留最近一次可正常启动的两份 Geo 文件备份。
- 更新前记录「设置」→「参数设置」→「Core 类型」的当前值。
- 更新后完全重启内核,不只刷新订阅或切换节点。
- 用私有地址、直连域名和代理域名完成三类验证。
- 出现异常时先回退文件,再逐项恢复自定义路由规则。