本文适合已经使用 v2rayN 路由功能、但遇到分类过期或规则不生效的用户。操作顺序是确认当前内核与资源目录,使用内置入口更新,重启内核,再从日志和最终配置检查分类名;内置更新失败时,再停核并手动替换两份数据文件。
geoip.dat 与 geosite.dat 分别处理什么
geoip.dat 按 IP 地址段归类。路由规则中的 geoip:cn、geoip:private 都从这份文件读取。连接目标已经是 IP,或域名解析结果需要继续做 IP 匹配时,内核会查询 GeoIP 数据。
geosite.dat 按域名归类。常见写法包括 geosite:cn、geosite:category-ads-all 与 geosite:geolocation-!cn。它保存的是域名规则集合,不负责 DNS 解析,也不会直接判断某个 IP 所属地区。
两份文件都由运行中的 Xray 或 V2Fly 内核读取,v2rayN 只负责生成配置、调用内核与执行更新操作。更新文件不会自动改变规则顺序。若前面已有范围更大的规则先命中,后面的 GeoIP 或 GeoSite 规则仍然不会执行。
| 资源文件 | 规则前缀 | 典型分类 | 适合处理 |
|---|---|---|---|
| geosite.dat | geosite: |
cn、category-ads-all |
按域名集合分流 |
| geoip.dat | geoip: |
cn、private |
按目标 IP 地址段分流 |
更新前先确认内核、目录与现有规则
先在 v2rayN 主界面查看当前活动配置使用的内核。VLESS、XTLS 或 REALITY 配置通常交给 Xray;普通 VMess 配置也可能使用 Xray。若切换过核心类型,不能只替换旧目录中的文件。
再打开「设置」→「参数设置」,记录本地监听端口、核心类型和更新相关选项。常见本地 SOCKS 端口是 10808,HTTP 端口是 10809。自定义过端口时以当前界面为准,资源文件更新本身不要求修改端口。
Xray 资源目录
- 常见位置
- bin\Xray\
- 执行文件
- xray.exe
- 数据文件
- geoip.dat、geosite.dat
- 适用配置
- VLESS、VMess
以实际启动日志显示的核心路径为准,不按压缩包根目录猜测。
V2Fly 资源目录
- 常见位置
- bin\v2ray\
- 执行文件
- v2ray.exe
- 数据文件
- geoip.dat、geosite.dat
- 规则前缀
- geoip、geosite
目录名称会随 v2rayN 版本与解压结构变化,必须和当前执行文件对应。
最后导出或查看当前路由配置,确认规则确实引用了 GeoIP 或 GeoSite。只替换数据文件而配置中没有 geoip:、geosite: 条目,不会产生可见变化。更新前可复制旧文件到单独备份目录,文件名附上日期即可。
使用 v2rayN 内置入口更新 Geo 文件
优先使用客户端内置入口。常见操作路径是主菜单「检查更新」→「更新 Geo files」。部分 v2rayN 7.x 界面会把该项放在更新子菜单中,中文文案可能显示为「更新 Geo 文件」或「更新 Geo 资源」。执行前先选择一个可连接的服务器配置。
- 启动 v2rayN,确认核心可以正常运行,系统时间与网络连接正常。
- 打开「检查更新」菜单,选择 Geo 文件更新项。
- 等待状态栏或日志显示下载与写入完成,不要在写入期间关闭程序。
- 停止当前内核,再重新启动内核;仅切换系统代理开关不足以保证旧资源被释放。
- 打开日志,确认没有出现找不到分类、无法读取资源文件或配置加载失败。
自动更新不宜和频繁切换核心同时进行。v2rayN 中不同核心可能使用不同目录,一次成功下载只说明目标目录写入完成,不代表另一个核心目录同步更新。长期固定使用 Xray 时,只需重点检查当前 Xray 目录和启动日志。
更新结束后不要仅以“下载成功”判断规则有效。重新启动核心,再访问一个应当直连的域名和一个应当代理的域名,分别检查日志中的目标地址与出站标签。只有匹配结果符合预期,才算完成更新。
结论:更新后必须重启内核
Geo 数据在核心启动阶段载入。先停止核心,等待约 3 秒,再重新启动并查看首段日志,比只切换服务器或系统代理状态更可靠。
内置更新失败时手动替换文件
手动替换前先完全停止内核。若 xray.exe 或 v2ray.exe 仍在运行,文件可能被占用,复制操作也可能只替换其中一份。可在 v2rayN 中执行「服务器」区域的停止操作,再确认日志已经结束输出。
下载来源应与当前内核支持的资源格式匹配。取得新的 geoip.dat 与 geosite.dat 后,保持文件名不变。不要把压缩包本身改名成 .dat,也不要把两份文件放进额外的嵌套目录。
v2rayN\
├─ v2rayN.exe
└─ bin\
└─ Xray\
├─ xray.exe
├─ geoip.dat
└─ geosite.dat
- 退出正在运行的核心,记录日志中显示的核心执行路径。
- 打开该执行文件所在目录,确认旧的两份
.dat文件位于同一级。 - 将旧文件复制到备份目录,例如
backup\2026-08-26\。 - 复制新文件并覆盖同名文件,确认最终名称没有重复扩展名。
- 启动核心,观察配置加载阶段是否报告资源读取错误。
- 测试直连、代理与拦截规则各一个,核对实际出站。
覆盖前
- 核心状态
- 已停止
- 备份数量
- 2 个文件
- 目录依据
- 启动日志
- 文件名称
- 保持原名
先确定正在使用的目录,避免更新到历史版本残留目录。
覆盖后
- 第一步
- 重启核心
- 第二步
- 检查日志
- 第三步
- 测试分流
- 异常处理
- 恢复旧文件
两份文件应作为同一批次处理,避免分类版本错位增加排查成本。
便携版移动过目录时,系统中可能存在多个 bin\Xray\。按文件修改时间搜索只能帮助定位,不能证明它正被使用。最可靠的依据仍是当前启动日志中的执行路径,以及任务管理器中实际运行的核心进程。
GeoIP 与 GeoSite 常用分类名怎么写
在 v2rayN 路由设置中,域名规则和 IP 规则应放在对应字段。geosite:cn 写入域名匹配区域,geoip:cn 写入 IP 匹配区域。出站标签通常选择 direct、proxy 或 block,具体名称以最终生成配置中的标签为准。
常见的基础顺序是:私有地址直连,特定拦截域名阻断,国内域名直连,国内 IP 直连,其余流量交给代理出站。若把全局代理规则放在最前面,后续直连分类就没有命中机会。
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"ip": [
"geoip:private",
"geoip:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:category-ads-all"
],
"outboundTag": "block"
}
geoip:private:匹配常见私有与本地地址范围,通常安排直连。geoip:cn:按目标 IP 分类,适合作为域名规则之后的补充。geosite:cn:匹配收录在国内域名分类中的条目。geosite:category-ads-all:匹配广告类域名集合,使用前先确认业务域名没有被误拦截。geosite:geolocation-!cn:匹配按地理属性整理的非国内域名集合,分类范围较宽,应放在精确规则之后。
分类名必须存在于当前 geosite.dat 或 geoip.dat。自行写入一个看似合理的名称,不会自动创建分类。核心启动时若报告类似“找不到 geosite 条目”的错误,应先核对拼写、前缀和数据来源,而不是反复修改本地监听端口。
结论:精确规则放在宽范围分类之前
先处理单个域名、完整域名和特定分类,再使用 geosite:geolocation-!cn 等宽范围集合,最后设置兜底出站。这样更容易从日志定位误匹配。
更新后规则失效的排查顺序
更新后无法启动核心,先看日志第一条错误。资源文件路径错误、分类不存在和 JSON 配置语法错误是三类不同问题。不要先删除全部路由规则,否则会丢失用于定位故障的上下文。
核心能够启动但分流结果不对,先确认请求是否携带域名。某些应用直接连接 IP,此时 GeoSite 规则没有可匹配的域名,只能依赖 GeoIP。启用 DNS 改写、远程解析或 TUN 模式后,目标信息的形成过程也可能变化,应结合最终配置判断。
更新完成后仍提示找不到分类?
打开启动日志确认实际核心目录,再检查规则拼写。例如 geosite:cn 不能写进 IP 列表,geoip:cn 也不能写进域名列表。修正后停止核心,等待约 3 秒再启动。
文件已经覆盖,修改时间却没有变化?
通常是替换了未被使用的旧目录。根据日志定位 xray.exe 或 v2ray.exe 的真实路径,把两份文件放到该执行文件所在目录,再重启核心。
更新后所有网站都走代理?
检查路由规则顺序与当前路由模式。将私有地址、geosite:cn 和 geoip:cn 的直连规则放在兜底代理规则之前,并确认出站标签确实指向 direct。
广告分类导致正常页面资源缺失?
先暂时停用 geosite:category-ads-all 规则确认原因,再从核心日志找到被阻断的具体域名。把业务必需域名加入更靠前的直连或代理规则,不要直接关闭全部分流。
内置更新一直超时怎么办?
先连接一个可用服务器配置,确认系统时间正确,再重试「检查更新」→「更新 Geo files」。仍失败时停止核心,按实际核心目录手动替换,并保留旧文件用于回退。
还要检查当前选择的路由模式。v2rayN 中切换到全局代理、全局直连或其他预设模式后,自定义规则可能不再是最终生效配置。应在启动后查看生成的路由段,而不是只看编辑窗口中保存的内容。
若只有少量域名流向异常,可先添加一条精确规则进行对照。精确规则能够命中而分类规则不能命中,问题多半在分类名、数据文件或规则字段;两者都不能命中,则继续检查规则顺序、目标类型和出站标签。
建立可回退的更新周期
Geo 数据没有必要在每次启动时强制下载。普通使用可按每周一次检查;依赖细分类规则、经常遇到新域名归类变化时,可按 24 小时检查。更新频率只影响分类数据的新旧,不会提升节点传输速度。
每次更新只保留一份最近可用备份即可。备份内容包括 geoip.dat、geosite.dat 和当前路由配置。发生分类缺失或误匹配时,先恢复上一批数据,再分别检查规则变化,避免同时改文件、DNS 和出站设置。
- 更新前:记录核心类型、执行路径、路由模式与文件修改日期。
- 更新时:两份资源文件作为同一批次处理,避免只替换其中一个。
- 更新后:停止并重启核心,检查启动日志与三类出站结果。
- 出现异常:恢复最近备份,再按分类名、字段、顺序和目录逐项排查。
维护完成后,保留一组固定测试目标:本地局域网地址用于验证私有地址直连,已知国内域名用于验证 GeoSite,直接 IP 请求用于验证 GeoIP,再用一个应当代理的域名检查兜底规则。固定测试对象比随机打开网页更容易比较更新前后的差异。