跳至内容

路由中的 GeoIP 与 Geosite 依赖

Geosite 匹配域名,GeoIP 匹配 IP 网段,两者不是可互换的国家数据库。

默认文件

geosite.dat 来自 domain-list-community,geoip.dat 来自 v2fly/geoip。入口:高级 → Xray → 路由数据。默认更新必须成对进行。

本指南智能路由等价示例使用的分类:

目标 域名条件 IP 条件
私有/本地 geosite:PRIVATE geoip:PRIVATE
中国大陆 geosite:CN geoip:CN
Apple geosite:APPLE 示例不要求对应分类
Microsoft geosite:MICROSOFT、geosite:BING 示例不要求对应分类
GitHub 例外 geosite:GITHUB 示例不要求对应分类
广告 geosite:CATEGORY-ADS-ALL 示例不要求对应分类

不要生成 geosite:WINDOWS 或 geosite:OFFICE;示例实际使用 Microsoft 和 Bing 分类。

地区不能按“国家代码就是同名 Geosite”推断。例如俄罗斯域名映射为 CATEGORY-RU,而 IP 使用 RU。地区映射快照记录 App 的映射,不保证未来或每个已安装 DAT 都有相同分类。许多地区只有 IP 条件。

最终以设备安装文件的分类列表/自动补全为准。不知道文件名或分类时询问用户,不根据名字猜测,也不编造下载 URL。

自定义依赖

域名或 IP 规则使用 ext:filename.dat:category,DAT 类型必须对应。文件只平铺,使用安全的 .dat 文件名,不含父目录或子目录。

完整自定义路由文件可附带以下片段;它不是可独立导入的配置:

{
  "geodata": {
    "assets": [
      {
        "file": "company-domains.dat",
        "url": "https://rules.example.com/company-domains.dat"
      }
    ]
  }
}

该 URL 是占位符,必须取得真实 HTTPS 文件和分类。每项仅有 file、url。省略默认 geosite.dat、geoip.dat,不把它们重新声明成自定义文件。

自定义路由导入会下载声明的依赖,每个声明都必须在受支持的语义字段中被引用。除路由规则外,高级自定义还扫描 DNS hosts 的键、服务器的域名和预期/非预期 IP、入站 sniffing 排除项及 DNS 出站规则的域名。密码等普通字符串不作为依赖。文件名冲突时拒绝导入,不覆盖现有文件。存储前移除导入专用 geodata,分享时依据登记的自定义来源重建依赖,包括从备份恢复的待下载来源。来源记录不代表文件已安装,也不证明某个分类实际存在。

Raw 不同:普通 Raw JSON 文件不会根据根部 geodata.assets 下载依赖。需先在“路由数据”安装自定义文件,或使用 App 的 Raw 分享流程,将独立 /dat/add App Link 与 Raw 配置链接一同导入。Raw 导出保留原文,运行时删除根部 geodata。不能通过添加这个字段承诺自动下载 Raw 依赖。参见分享格式

备份恢复与配置导入不同

连接配置备份包含自定义来源元数据,不包含文件内容。恢复会复用匹配且有效的本地文件,将其他来源登记为待下载,不主动下载。配置记录可以离线恢复,但需要缺失文件的路由在文件安装前不能运行;不要为了连接成功而删除依赖。

更新与失败

自动 Geodata 更新仅在 VPN 已连接时执行;断开时的启动、回前台和定时检查不下载。失败保留旧文件,不改变 VPN 状态、不触发重连。

手动更新和导入依赖下载独立。校验/启动需要的文件必须已经存在,缺失时明确报错,不通过尚未启动的 VPN 下载兜底。不要承诺上游分类在未来版本中永远不变。

管理路由数据 · 排错

在路由中使用数据

编写自定义路由 JSON时选择真实分类。完整 Raw JSON 配置需要在启动前准备好依赖文件;通过 Geodata 页面单独管理下载。

最后更新于