直接答案
分流规则是代理客户端用来决定“每一个连接该走哪条路”的一组条件:访问国内网站直连,访问境外服务走代理,访问广告域名直接拦截,都是规则在起作用。客户端通常提供三种模式:规则模式按规则分流,全局模式让所有流量走代理,直连模式让所有流量都不走代理。日常使用一般选规则模式,只有排查问题时才临时切换另外两种。
不分流会怎样
如果把所有流量都送进代理,会出现三个直接问题:一是国内网站要先绕到境外再回来,打开反而变慢;二是国内视频、软件更新等大流量也会消耗节点流量,套餐很快用完;三是部分国内服务看到境外 IP,可能要求额外验证或限制功能。
分流就是为了解决这些问题:该直连的直连,该代理的代理,让每一份流量走最合适的路径。
一条规则长什么样
以 Clash 系客户端为例,一条规则由“类型、匹配内容、去向”三部分组成,常见类型有:
- DOMAIN / DOMAIN-SUFFIX / DOMAIN-KEYWORD:按完整域名、域名后缀或关键词匹配。
- GEOSITE:按预先整理好的域名分类匹配,例如某个地区的常用网站集合。
- GEOIP:按目标 IP 所属国家或地区匹配,常用于“国内 IP 直连”。
- IP-CIDR:按 IP 段匹配,例如局域网地址直连。
- PROCESS-NAME:按发起连接的程序名匹配,桌面端较常用。
- MATCH:兜底规则,前面都没命中时,统一交给它指定的去向。
去向可以是某个代理组、DIRECT(直连)或 REJECT(拦截)。
规则优先级:从上到下,命中即停
分流规则按书写顺序逐条匹配,一旦命中就不再往下看。这意味着越具体的规则应该放得越靠前,范围大的规则放后面,MATCH 永远放在最后。很多“规则写了却不生效”的问题,原因都是前面已经有一条范围更大的规则先命中了。
GEOIP 规则需要知道目标 IP,客户端可能因此提前解析域名。部分客户端提供 no-resolve 之类的选项,让没有 IP 的请求跳过这条规则,减少不必要的 DNS 查询。
规则集与更新
手写几千条规则并不现实,所以客户端支持引用外部的规则集文件,按设定间隔自动更新。机场下发的订阅配置里通常已经内置了一套规则和规则集。规则集长时间不更新,新出现的网站就可能被错误分流。
判断标准:三种模式怎么选
| 模式 | 流量去向 | 适合什么时候用 | 需要注意 |
|---|---|---|---|
| 规则模式 | 按规则分流 | 日常使用 | 规则需要保持更新 |
| 全局模式 | 全部走代理 | 排查“是不是规则问题”;临时访问规则未覆盖的网站 | 更费流量,国内服务可能变慢 |
| 直连模式 | 全部不走代理 | 排查“是不是代理问题”;临时只用国内服务 | 境外服务无法访问 |
排错时可以这样用:规则模式打不开、全局模式能打开,说明规则没覆盖到该网站;全局模式也打不开,问题更可能在节点或网络。
国内网站走了代理怎么办:操作步骤
- 确认模式:检查客户端是否处于规则模式,而不是全局模式。
- 查看连接记录:在客户端的“连接”或“日志”页面找到该网站的请求,看它命中了哪条规则。
- 更新订阅和规则集:很多误判在更新后就会消失。
- 添加自定义规则:为该域名添加一条指向 DIRECT 的规则,并放在靠前的位置;优先使用客户端的覆写或扩展功能,避免下次更新订阅时被覆盖。
- 检查 TUN 与系统代理:如果某个程序完全不受规则影响,可能是它没有经过客户端,需要考虑开启 TUN 模式。
注意事项
- 自定义规则尽量写得具体,避免用过宽的关键词误伤其他网站。
- 全局模式用完记得切回规则模式,否则流量消耗会明显增加。
- 规则只决定流量去向,不能提高节点本身的速度。
- 请在所在地法律法规允许的范围内使用代理工具。
规则模式和全局模式有什么区别?
规则模式按规则逐条判断每个连接走代理还是直连;全局模式让所有连接都走选定的代理,国内网站也不例外,会更费流量,访问国内服务也可能变慢。
国内网站走了代理怎么办?
先确认客户端处于规则模式,再更新订阅和规则集;如果仍然不对,可以为该域名添加一条直连规则,并放在靠前的位置。