一、分流规则的设计理念与工作机制
分流(Routing / Rule-based proxying)是现代网络代理技术的核心灵魂。其核心目标在于解决一个基本矛盾:既要保证访问海外受限资源时获得稳定通畅的代理加速,又要确保访问国内本土网站(如政务平台、网银、本地流媒体)时保持极速直连并节省代理流量。
当应用程序发起网络访问请求时,客户端的路由分流引擎会截获该请求的目标域名或目标 IP 地址,按照配置中声明的规则列表自上而下逐条比对,一旦命中某条规则,立即执行对应的出站策略(如 DIRECT、REJECT 或特定的代理策略组)。
二、核心规则匹配类型与语法说明
以主流的 Clash / Surge 规则语法为例,常见的分流匹配类型包括:
- DOMAIN-SUFFIX(域名后缀匹配):例如
DOMAIN-SUFFIX,bing.com,PROXY。凡是以bing.com结尾的域名(包括cn.bing.com、www.bing.com)均命中该策略; - DOMAIN-KEYWORD(域名关键词匹配):例如
DOMAIN-KEYWORD,google,PROXY。只要域名字符中包含google子串即被匹配; - IP-CIDR(无类域间路由 IP 匹配):例如
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve。用于直接匹配目标 IP 地址段,通常配合no-resolve参数避免无意义的逆向域名解析; - GEOIP(地理位置 IP 数据库):例如
GEOIP,CN,DIRECT。依据 MaxMind 或 MMDB 地理数据库,自动判断目标 IP 是否属于中国大陆 IP,属于则直连; - MATCH(终末缺省规则):位于规则列表最底端,例如
MATCH,PROXY。若上述所有规则均未命中,则应用该缺省策略。
三、规则匹配的从上至下优先级逻辑
分流引擎遵循严苛的 “首条命中优先(First-Match-Wins)” 原则:
经典错误范例:
- GEOIP,CN,DIRECT
- DOMAIN-SUFFIX,apple.com,PROXY
- MATCH,PROXY
如果用户访问 apple.com 时,本地 DNS 恰好解析到了苹果在中国境内设立的 CDN 缓存节点(属于中国大陆 IP),此时由于第一条 GEOIP,CN,DIRECT 判定成立,请求将直接被直连放行,第二条专门针对 Apple 的代理规则将彻底失去作用!
正确编写逻辑:始终将范围狭小、精确度高的特殊域名规则放在最上方;将范围广泛、粗粒度的 GEOIP 与 MATCH 规则放在最底部。
四、如何为本地配置添加自定义特定规则
在日常使用中,若发现某个特定的学术网站或冷门服务被误判,可以通过自定义本地规则进行修正:
- 在 Clash Verge 中右键点击当前正在使用的 Profile 订阅,选择「编辑规则」或「扩展配置(Merge)」;
- 在
rules:字段下方的最顶层添加自定义条目,例如强制某个开发论坛走代理:prepend-rules: - DOMAIN-SUFFIX,github.com,PROXY - DOMAIN-SUFFIX,raw.githubusercontent.com,PROXY - DOMAIN-SUFFIX,internal-company.com,DIRECT - 保存配置文件并重新加载,自定义规则即刻生效且不会被订阅更新覆盖。
五、Rule-Providers 规则集订阅与日常维护
传统的单体规则列表动辄包含数千行代码,更新极其繁琐。现代配置广泛采用 rule-providers 机制:
客户端配置只需引用社区维护的远端规则集(如由 Loyalsoldier 等维护的流行白名单、广告拦截列表或特定平台分流集),客户端会在后台按照设定的时间周期自动异步更新这些分流规则库,保持策略与全球网络拓扑变化实时同步。
