Geo
GeoConfig — 域名、IP 与应用集合
地理数据集合在 ServerConfig.geo(GeoConfig)中定义。模式定义:protos/proto/vx/geo/geo.proto。
原子集合(atomic*)直接持有域名、IP 或应用 ID。大集合(great*)通过 inNames / exNames 组合其他集合。大集合与原子集合的 name 在同一类别内须唯一。
路由与 DNS 通过 domainTags、dstIpTags、srcIpTags、appTags 按名称引用集合。客户端 UI 说明见集合。
GeoConfig
各类别内名称须唯一(greatDomainSets 与 atomicDomainSets 之间不可重名,IP 集合同理)。
Domain
单条域名匹配规则。定义于 protos/proto/vx/common/geo/geo.proto。
用于 路由 的 geoDomains、DNS 的 geoDomains,以及 AtomicDomainSetConfig 的 domains。
type匹配方式:
Plain:子串匹配(关键词)Regex:正则匹配RootDomain:根域及其子域(后缀匹配)Full:完整主机名精确匹配
value要匹配的域名或模式
CIDR
单条 IP 网段。定义于 protos/proto/vx/common/geo/geo.proto。
用于 AtomicIPSetConfig 的 cidrs。
ipIP 地址,4 字节(IPv4)或 16 字节(IPv6)。ProtoJSON 中通常为 base64 编码。
prefix网络前缀长度(CIDR 掩码位数,如 24 表示 /24)
AtomicDomainSetConfig
小域名集合。domains、geosite、geosites、clashFiles、remoteGeoFiles 可组合使用。
name集合名称,供 domainTags 引用
useBloomFilter对大集合启用布隆过滤器以降低内存占用(常见于 iOS)。有约 1% 误报率。
clashFilesClash 格式规则文件路径,从中提取域名规则
inverse反向匹配:域名不在本集合源中时才匹配
GeositeConfig
从 geosite.dat(或兼容格式)按分类代码加载域名。
codesgeosite 分类代码(如 cn、gfw、private)
attributes在已加载域名中按 Domain.attribute.key 进一步筛选(不区分大小写)
filepath本地 geosite.dat 路径
remoteUrl远程 geosite.dat 的 HTTPS URL;配合 refreshCron 定时更新。将下载至filepath
refreshCron5 段 cron(分 时 日 月 周)。空表示仅在启动 / 重载时拉取
AtomicIPSetConfig
小IP集合。cidrs、geoip、clashFiles、remoteGeoFiles 可组合使用。
name集合名称,供 dstIpTags、srcIpTags、ipTags 引用
inverse反向匹配:IP 不在本集合源中时才匹配
clashFilesClash 格式规则文件路径,从中提取 IP / CIDR 规则
GeoIPConfig
从 geoip.dat(或兼容格式)按代码加载 IP 段。
codesgeoip 分类 / 国家代码(如 cn、private)
filepath本地 geoip.dat 路径
remoteUrl远程 geoip.dat 的 HTTPS URL
refreshCron5 段 cron。空表示仅在启动 / 重载时拉取
GreatDomainSetConfig
大域名集合,不直接持有域名,而是引用其他原子或大域名集合。
匹配逻辑:先检查 exNames(命中则不匹配),再检查 inNames(命中任一则匹配)。
name组合集合名称
inNames包含这些集合中的域名(命中任一即匹配)
exNames排除这些集合中的域名(命中任一则不匹配)
不可在 inNames 或 exNames 中包含自身 name。
GreatIPSetConfig
大IP集合,逻辑与 GreatDomainSetConfig 相同,但针对 IP。
name组合集合名称
oppositeName互斥配对集合名称
inNames包含这些 IP 集合中的地址
exNames排除这些 IP 集合中的地址
AppSetConfig
应用集合,供路由 appTags 使用。
name集合名称
clashFilesClash 格式规则文件,从中提取AppId 规则
AppId
单条应用 ID 匹配规则。定义于 protos/proto/vx/router/router.proto。
type匹配方式:
Keyword:子串匹配Prefix:前缀匹配Exact:精确匹配
value应用包名或 ID 字符串(匹配时转为小写)
GeoRemoteFile
远程 geo 数据文件的定时下载配置,用于 AtomicDomainSetConfig.remoteGeoFiles 与 AtomicIPSetConfig.remoteGeoFiles。
filepath下载后写入的本地路径
sourceUrlHTTPS 下载地址
refreshCron5 段 cron(分 时 日 月 周)。空表示仅在启动 / 重载时拉取一次
示例
原子域名集合 + 组合集合 + 路由引用:
{
"geo": {
"atomicDomainSets": [
{
"name": "gfw",
"geosite": {
"filepath": "geosite.dat",
"codes": ["gfw"]
}
},
{
"name": "custom-direct",
"domains": [
{ "type": "Full", "value": "example.com" }
]
}
],
"greatDomainSets": [
{
"name": "proxy-domains",
"inNames": ["gfw"],
"exNames": ["custom-direct"]
}
]
},
"router": {
"rules": [
{
"domainTags": ["proxy-domains"],
"matchAll": true,
"outboundTag": "proxy"
}
]
}
}