对于刚接触代理工具(如 ClashX)的新手来说,经常会遇到“节点连上了,但为什么这个网站打不开?”或者“为什么访问国内网站也变慢了?”的疑问。这通常是因为代理规则(分流策略)没有配置好。
1. 什么是代理规则?(分流的本质)
简单来说,代理规则就是一个“十字路口的交通警察”。当你在浏览器输入一个网址时,这个“警察”会根据你预先设定的规则(Rule)来决定这个请求该怎么走:
- DIRECT (直连):如果规则判断这是国内的网站(如百度、淘宝),警察会让你直接访问,不经过代理服务器。这样速度最快,且不消耗机场流量。
- PROXY (代理):如果规则判断这是国外的网站(如 Google、YouTube),警察会把你的请求打包发给机场的代理节点,由节点帮你访问后再把数据传回来。
- REJECT (拦截):如果规则判断这是一个广告或者恶意追踪网站,警察会直接丢弃这个请求,达到去广告的效果。
2. 为什么现在的机场都需要自己的分流规则?
几年前,大家通常只用简单的“全局代理”或者PAC模式。但随着互联网环境的变化,单一的代理模式已经无法满足需求:
原因一:流媒体解锁的需求。 很多用户看 Netflix、Disney+ 需要特定的解锁节点。这就要求“所有访问 Netflix 的流量走 A 节点,其他海外流量走 B 节点”。这就是所谓的特定策略组分流。
原因二:CDN 和智能 DNS。 现代网站大量使用 CDN。如果用全局代理访问国内带有 CDN 的网站,CDN 会认为你在国外,从而给你分配一个国外的慢速节点。精准的分流规则可以避免这种“减速”。
3. 基础的规则匹配逻辑
在 Clash 的配置(YAML)中,规则是从上到下逐条匹配的。一旦命中,就不会继续往下看。常见的匹配方式有:
- DOMAIN-SUFFIX (域名后缀):例如
DOMAIN-SUFFIX,google.com,PROXY,意味着所有以 google.com 结尾的域名(包括 www.google.com, mail.google.com)都走代理。 - DOMAIN-KEYWORD (域名关键字):例如
DOMAIN-KEYWORD,netflix,Netflix-Node,包含 netflix 关键字的都走专属节点。 - GEOIP (地理位置):例如
GEOIP,CN,DIRECT,基于 IP 数据库,如果目标服务器的 IP 属于中国,则直连。 - MATCH (兜底规则):通常放在最后一行
MATCH,PROXY。如果上面的规则都不符合,就全盘走代理。
4. 遇到“连上节点但上不了网”时,如何排查?
如果你在 ClashX 中遇到了网络问题,八成是规则没命中。排查步骤:
- 检查是否开启了“全局路由 (Global)”模式。全局模式会无视所有规则,强制所有流量走代理。日常使用请务必选择“规则 (Rule)”模式。
- 查看 ClashX 的连接日志(Connections),看看目标网站到底是命中了
DIRECT还是PROXY。如果国内网站命中了 PROXY,说明你的规则库太旧,缺少国内域名的直连规则。 - 更新机场订阅。大部分机场会在订阅链接中下发他们写好的规则(Rule-Providers)。更新订阅即可获取最新规则。