教程 阅读约 16 分钟

Clash Meta GEOIP 与 GEOSITE 规则怎么写?按国家与域名分流步骤(2026)

你已经会用 DOMAIN-SUFFIX、策略组与基础 rules:,下一步往往是:整国直连或整类站点走代理。在 Clash Meta / Mihomo 里,GEOIP 按 IP 归属地分桶,GEOSITE 按内置或远程的域名集合分桶;二者都和「进程是谁」「HTTPS 里有没有主机名」不是同一维度。本文不写 PROCESS-NAMESniffer 的重复细节,而专注 geodata 准备规则语法RULE-SETrules 顺序,给你能照抄的骨架和常见坑。

Clash 编辑组 Clash Meta · Mihomo · GEOIP · GEOSITE · 分流规则

搜索意图:GEOIP / GEOSITE 解决什么问题

GEOIP 回答的是:「当前连接的目标 IP,在地理数据库里标成哪个国家/地区?」适合作为兜底桶,例如 GEOIP,CN,DIRECT 把判定为中国的流量走直连。GEOSITE 回答的是:「当前连接关联的主机名,是否落在某个预置域名集合里?」例如 GEOSITE,youtube,PROXY 把整类视频站归到代理策略组。二者都要求内核手里至少有可用的 IP 或域名线索;若 HTTPS 连接在规则阶段仍只有 IP、又没有 Sniffer 还原域名,GEOSITE 可能轮空,只剩 GEOIP 与 IP 类规则在干活——这也是为什么站内把 Sniffer 与本文连读很有价值,但职责不同。

按进程分流 相比:进程规则看「谁发起的连接」,GEOIP/GEOSITE 看「连向哪里」。同一浏览器里多个标签页共享进程时,进程规则很难细到站点;GEOSITE 则按主机名桶化,更适合「国内外站点分流」这类需求。

GEOIP 规则:语法与国家代码

常见写法为 GEOIP,<ISO 国家码>,<策略组或动作>,可选附加参数如 no-resolve(仅在已有 IP、不希望再触发解析时使用,具体行为以当前内核文档为准)。国家码一般用大写两字母,例如 CNUS。内核依赖 GeoIP 数据库(如 geoip.dat 或与 MaxMind 兼容的 Country.mmdb,取决于你的配置与版本),库文件缺失或过期时,GEOIP 规则会表现为「全不命中」或误判,这是线上环境最常见的 silent failure 之一。

实务提醒:CDN 与 anycast 会让「IP 归属国」与「业务站点的品牌国」不一致。若你发现某个海外站总被 GEOIP,CN,DIRECT 误伤,优先用 域名级覆写DOMAIN-SUFFIX 或 GEOSITE 类别)插在该 GEOIP 规则之前,而不是盲目改国家库。

GEOSITE 规则:类别名从哪来

GEOSITE,<tag>,<策略组> 中的 tag 来自 geosite.dat(或等价数据源)里定义的集合名,例如社区规则里常见的 cngoogletelegramcategory-ads-all 等。拼写必须与数据文件一致,大小写敏感;订阅里抄来的类别名若与你本地的 geosite 构建不一致,会直接导致规则不生效。

若你更习惯「远程拉一份文本规则」,也可以用 rule-providersRULE-SET(名称随 Mihomo 版本演进)引用 domain / classical 行为的集合,再在 rules: 里写一行引用;其本质仍是「把大量域名折叠成一个可更新的桶」,与内联 GEOSITE 互为替代方案。社区规则集选型可参考 ACL4SSR 与 Loyalsoldier 规则集对比,但本文聚焦语法与顺序,不展开评测结论。

1准备 geodata:下载路径与自动更新

在 Mihomo 中通常配置 geox-url(或等价项)指向可信的 geoip.dat / geosite.dat 发行位置,并打开 geo-auto-update,让内核按间隔拉取。下面是一段教学用骨架:URL 应随你信任的镜像调整,升级大版本后请对照发行说明核对键名是否变更。

# Skeleton — replace URLs if you mirror geodata elsewhere; check release notes after upgrades
geox-url:
  geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
  geosite: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat"
geo-auto-update: true

提示:容器或离线环境若无法访问 GitHub,需自行挂载数据文件或换内网镜像;否则 GEOIP/GEOSITE 会在启动日志里报下载失败,规则表现异常。

2写 rules:内联 GEOSITE / GEOIP 与 RULE-SET

内联写法适合快速验证。示例(策略组名请换成你订阅里真实存在的名字,如 PROXYDIRECTREJECT):

rules:
  - GEOSITE,category-ads-all,REJECT
  - GEOSITE,private,DIRECT
  - GEOSITE,cn,DIRECT
  - GEOSITE,youtube,PROXY
  - GEOIP,CN,DIRECT
  - GEOIP,LAN,DIRECT
  - MATCH,PROXY

若使用远程规则集,通常在 rule-providers: 定义数据源,再在 rules: 中用 RULE-SET 引用(具体键名、是否需 behavior 以你当前版本文档为准)。思路是:大块域名交给 provider 维护,本地只保留少量「我必须插队」的 DOMAIN 行。

3排顺序:从「最具体」到「最宽泛」

rules: 自上而下第一条命中即停止。推荐心智模型:局域网与私有名广告与拦截类你手写的高优域名GEOSITE 大桶GEOIP 国家桶MATCH 默认。若把过宽的 GEOIP,CN,DIRECT 放在很靠前,海外 CDN IP 可能被提前直连;若把巨型远程 RULE-SET 顶在一切之前,你的个人例外永远轮不到。

DNS 与规则要讲同一个故事:FakeIP、DoH、fake-ip-filter 会影响「内核看到的 IP」与解析路径,进而影响 GEOIP 的输入。建议与 Meta 内核 DNS 防泄漏指南 一起核对,避免「解析是一套、规则看到的是另一套」。

常见坑(与 Sniffer / 进程规则无关的那一半)

  • geodata 未下载或路径错: GEOIP/GEOSITE 全线失效,日志可能有下载错误,也可能静默。
  • GEOSITE 标签写错: 与当前 geosite.dat 不一致,规则永远不命中。
  • 只有 IP 没有域名: GEOSITE 无法发挥作用,只剩 GEOIP;需 Sniffer 或调整 DNS/日志确认。
  • 宽泛 GEOIP 抢跑: 细域名规则写在后面,永远达不到。
  • 订阅整体替换配置: 本地精心排的顺序被远程模板覆盖,表现为「改完又复原」。

验收:用日志确认「第一条命中」

改完后不要猜:在客户端连接面板或日志里找命中的规则名策略组。对同一站点分别观察直连与代理预期,确认 GEOSITE 行是否真的出现在 GEOIP 之前。若显示命中 GEOIP 而你期望走 GEOSITE,十有八九是顺序主机名缺失问题,而不是节点质量问题。

合规提醒:请仅在法律与网络使用政策允许的范围内配置代理与路由分流;企业或校园环境须遵守本地管理规定。

关于下载:开源内核与客户端源码可在 GitHub 查阅;日常获取安装包请优先使用 本站下载页

小结

Clash Meta / MihomoGEOIPGEOSITE 是「按国家」与「按域名集合」两条最常用的分流规则杠杆:前者吃 IP 地理库,后者吃 geosite 标签或远程 Rule Provider / RULE-SET。把 geodata 更新、规则顺序DNS 三件事对齐后,精细化分流才稳定;与 PROCESS-NAMESniffer 搭配时,各管一维,不必混成同一篇长文才能讲清。

相比在多个小工具里分别维护名单,把国家桶、站点桶与个人域名覆写收敛到同一套 YAML,长期更可复盘;当你能在日志里明确读出「第一条命中规则」时,排查就从玄学回到工程。

立即免费下载 Clash,开启流畅上网新体验

Clash 客户端 GEOIP · GEOSITE

支持 Meta / Mihomo 内核的图形客户端,便于在连接日志里核对 GEOIPGEOSITE 命中顺序;与本站 DNS、Sniffer、进程规则教程同一语境,减少「界面与 YAML 不一致」带来的摩擦。

国家与站点桶

GEOIP / GEOSITE 一目了然

规则可维护

本地覆写插在最前

顺序可验证

日志确认首条命中

本站分发

安装包入口集中

上下篇导航

相关阅读

GEOIP / GEOSITE:先对齐 geodata

更新 geoip / geosite 数据,再排好规则顺序;HTTPS 只有 IP 时配合 Sniffer。客户端从本站下载页获取。

免费下载客户端