自定义分流规则集编写:GEOIP、域名关键词与进程分流
导读:从被动套用规则到随心掌控流量流向
在绝大多数情况下,服务商或第三方规则维护团队下发的基础规则集,已经能够覆盖日常 90% 的主流网站。但在真实的进阶使用中,每个人都有自己独特的工作环境与小众工具流:
- 比如公司搭建在海外但仅限内网访问的私有协同平台;
- 比如某个特定的本地开发程序(如 Docker、WSL、Figma)需要强制走指定节点;
- 或者某个经常访问的小众论坛,默认规则总是将其误判为直连导致打不开。
如果不懂得如何编写分流规则,遇到规则盲区便只能无奈地频繁手动切换全局模式。学会自己编写精准的分流规则,才能真正让网络工具完全服从于你的个人意志。本文将为你系统梳理各类规则语法的核心要义与实战编写模板。
核心分流规则语法大全与运行场景
在 Clash 体系中,分流规则按照匹配维度的不同,划分为以下几大核心类型:
1. 域名后缀匹配(DOMAIN-SUFFIX)—— 最常用、最稳健
匹配以指定后缀结尾的所有子域名。
- 语法示例:`DOMAIN-SUFFIX,github.com,PROXY`
- 生效范围:不仅能匹配 `github.com` 根域名,还能自动覆盖 `api.github.com`、`raw.githubusercontent.com` 等所有下属子域名。这是针对特定服务编写规则的首选语法。
2. 域名全量精确匹配(DOMAIN)
仅当访问的域名与规则完全一字不差时才命中。
- 语法示例:`DOMAIN,login.microsoftonline.com,DIRECT`
- 生效场景:用于极其精细的手术刀式分流。比如只想让特定的登录验证接口直连,而让该服务的其他多媒体资源走代理。
3. 域名关键词模糊匹配(DOMAIN-KEYWORD)
只要请求的域名字符串中包含了指定关键字,便立即命中。
- 语法示例:`DOMAIN-KEYWORD,google,PROXY`
- 注意事项:关键词匹配极其宽泛,容易造成“误伤”。例如若定义了 `DOMAIN-KEYWORD,apple,PROXY`,可能会导致国内带有 apple 字样的食品或电商网站也被错误拉入代理,应谨慎克制使用。
4. IP 网段匹配(IP-CIDR 与 IP-CIDR6)
直接针对目标服务器的真实 IP 地址段进行掩码匹配。
- 语法示例:`IP-CIDR,192.168.1.0/24,DIRECT,no-resolve`
- 关键参数 `no-resolve`:告诉客户端在判断该规则时,不要强制发起 DNS 解析。这对于内网网段规则至关重要,能极大加快匹配效率并防止无意义的 DNS 查询。
5. 地理位置与地理站点集(GEOIP 与 GEOSITE)
基于全球离线 IP 库和域名归属库进行宏观批量匹配。
- 语法示例:`GEOSITE,cn,DIRECT` 与 `GEOIP,CN,DIRECT`
- 生效范围:一条规则即可瞬间将中国大陆境内的所有主流服务器与数万个企业 IP 统统归入直连名单,是构建分流白名单的核心骨干。
6. 操作系统进程名分流(PROCESS-NAME 与 PROCESS-PATH)
工作在操作系统应用层的高级分流语法,直接按发起请求的软件程序文件名进行裁决。
- 语法示例:
- Windows:`PROCESS-NAME,Telegram.exe,PROXY`
- macOS:`PROCESS-NAME,Slack,PROXY`
- 生效场景:彻底解决非标准 Web 请求、自定义后台常驻软件的分流问题,直接在进程源头完成路由归类。
实战编写模板:打造个人定制分流块
在编写个人专属规则时,请遵循结构化分层原则,将其放置在规则列表的最前列:
```yaml
rules:
# ==========================================
# 第一层:局域网与开发环境(绝对直连)
# ==========================================
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
# ==========================================
# 第二层:特定高优先级工作与生产力工具
# ==========================================
- DOMAIN-SUFFIX,openai.com,AI专属策略组
- DOMAIN-SUFFIX,claude.ai,AI专属策略组
- PROCESS-NAME,Code.exe,开发直通组
# ==========================================
# 第三层:小众冷门海外站点手动补漏
# ==========================================
- DOMAIN-SUFFIX,my-foreign-blog.org,PROXY
# ==========================================
# 第四层:国内大盘白名单(保障国内速度)
# ==========================================
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT
# ==========================================
# 第五层:全量未知流量最终兜底
# ==========================================
- MATCH,兜底策略组
```
常见问题解答 (FAQ)
为什么在规则里写了某个网站走 DIRECT,实际访问还是走了代理?
请牢记 Clash 规则是自上而下先命中先执行的!检查你的自定义直连规则是否被写在了一条更宽泛的代理规则(比如某条 `DOMAIN-KEYWORD`)的下方。一旦上方的代理规则先命中了该域名,排在后面的直连规则便永远没有执行的机会。将个人规则永远置于顶层即可解决。
经常需要维护大量域名,一条一条写太麻烦怎么办?
可以使用现代客户端支持的 `RULE-SET` 机制。将几百个同类域名整理成一个独立的文本文件(每行一个域名),以 `RULE-SET` 的形式统一载入。既便于分类维护,又不会让主配置文件显得冗长混乱。