ACL4SSR 教程

GEOSITE 和 GEOIP 是什么?Clash 规则里的 geosite 写法、数据来源与更新

分类:Clash 配置更新于 约 5 分钟读完6 份官方资料
本文目录
  1. 两类规则各匹配什么
  2. geosite 里的分类名从哪来
  3. 数据文件从哪来
  4. 换下载地址和自动更新
  5. 和规则集(rule-providers)怎么选
  6. 和 ACL4SSR 的关系
  7. 常见问题

在 Clash 的配置里常能看到 GEOSITE,cn,DIRECT 和 GEOIP,CN,DIRECT 这样的规则。它们不是一条条写死的域名或 IP,而是去查一个数据库:GEOSITE 查“这个域名属于哪个分类”,GEOIP 查“这个 IP 属于哪个国家”。本文以 mihomo 内核(原 Clash.Meta)为准。规则的通用写法和匹配顺序见本站的 Clash 规则怎么写。

两类规则各匹配什么#

规则 匹配对象 写法示例 官方文档说明
GEOSITE 域名 GEOSITE,youtube,PROXY 匹配 Geosite 内的域名,部分内容参考 v2fly/domain-list-community
GEOIP 目标 IP GEOIP,CN,DIRECT 匹配 IP 所属国家代码
SRC-GEOIP 来源 IP SRC-GEOIP,cn,DIRECT 匹配来源 IP 所属国家代码

GEOIP 是按 IP 判断的规则。连接只有域名时,内核会先做 DNS 解析再判断;不想因为这条规则触发解析,可以在后面加 no-resolve(详见 Clash 规则怎么写 里 no-resolve 一节)。

geosite 里的分类名从哪来#

geosite 的分类名来自 v2fly/domain-list-community。这个项目 data 目录里的每个文件就是一个分类,文件名就是分类名,比如 google、youtube、cn、category-ads-all、geolocation-!cn。要知道某个分类具体包含哪些域名,直接打开对应的文件看即可。

分类名后面还可以加 @ 属性做筛选。MetaCubeX 官方规则仓库的示例里有:

rules:
  - GEOSITE,category-ads-all,REJECT
  - GEOSITE,private,DIRECT
  - GEOSITE,youtube,PROXY
  - GEOSITE,google,PROXY
  - GEOSITE,microsoft@cn,DIRECT
  - GEOSITE,steam@cn,DIRECT
  - GEOSITE,geolocation-!cn,PROXY
  - GEOSITE,cn,DIRECT
  - GEOIP,private,DIRECT,no-resolve
  - GEOIP,CN,DIRECT
  - MATCH,DIRECT

microsoft@cn 的意思是 microsoft 分类里带 @cn 属性的那部分域名(v2fly 文档:属性以 @ 开头,写在域名条目后面)。geolocation-!cn 按该文件开头的注释,收录的是“在中国大陆没有接入点”的域名,和 geolocation-cn 相对。

规则按从上到下的顺序匹配,所以范围小的分类(microsoft@cn)要放在范围大的分类(geolocation-!cn、cn)前面。

数据文件从哪来#

GEOSITE 和 GEOIP 都要读本地的数据文件。mihomo 当前源码里的默认下载地址都指向 MetaCubeX 官方的 meta-rules-dat 仓库:

文件 用途
geosite.dat GEOSITE 规则
geoip.metadb GEOIP 规则(mmdb 模式,默认)
geoip.dat GEOIP 规则(dat 模式)
GeoLite2-ASN.mmdb IP-ASN 规则

用 mmdb 还是 dat 由 geodata-mode 决定:官方文档写明 true 为 dat,默认值是 false。

meta-rules-dat 的 README 说明了它和上游的区别,例如:geosite 用法同 Loyalsoldier/v2ray-rules-dat;geosite:cn 的来源换成了 blackmatrix7/ios_rule_script 的 ChinaMax_Domain;geoip 新增了 cloudflare、google、netflix、telegram、twitter 等类别。它还提供只含常用分类的 geosite-lite.dat,README 提醒其中的 cn 是精简集合,可能不全。

换下载地址和自动更新#

geox-url:
  geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
  geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
  mmdb: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"
geo-auto-update: true
geo-update-interval: 24
  • geox-url:自定义下载地址。上面是官方文档里的示例,用的是 jsDelivr 镜像,适合直连 GitHub 不稳定的网络。
  • geo-auto-update:是否自动更新,默认 false。
  • geo-update-interval:更新间隔,单位小时,默认 24。
  • geodata-loader:默认 memconservative,是为小内存设备优化的加载器;也可以改成 standard。

和规则集(rule-providers)怎么选#

GEOSITE 和 GEOIP 读的是一个大数据库,适合用现成分类。想用别人维护的规则列表,或者自己写一份,用规则集更直接,见本站的 Clash 规则集(rule-providers)怎么用。meta-rules-dat 的 meta 分支也把各个 geosite 分类单独做成了 .mrs 规则集文件。

和 ACL4SSR 的关系#

ACL4SSR 的在线配置主要用 .list 规则列表,没有用 GEOSITE。但它的配置里有一条 ruleset=🎯 全球直连,[]GEOIP,CN,经过 subconverter 转换后就是 Clash 配置里的 GEOIP,CN,🎯 全球直连,这条规则同样依赖本地的 GEOIP 数据文件。

常见问题

GEOSITE 和 GEOIP 有什么区别?
GEOSITE 按域名分类匹配,例如 GEOSITE,youtube,PROXY;GEOIP 按目标 IP 所属国家匹配,例如 GEOIP,CN,DIRECT。
geosite 的分类名从哪里查?
分类名来自 v2fly/domain-list-community 项目 data 目录下的文件名,例如 google、cn、category-ads-all、geolocation-!cn,打开对应文件就能看到包含的域名。
geosite.dat 和 geoip 数据文件从哪下载、怎么更新?
mihomo 默认从 MetaCubeX/meta-rules-dat 下载。可以用 geox-url 改下载地址,用 geo-auto-update: true 开启自动更新,geo-update-interval 默认 24 小时。

本站是非官方的学习笔记站,与 ACL4SSR 原项目维护者无隶属关系。文中引用的规则与文档版权归原作者所有。