为什么「国内直连 + 海外代理」是主流用法?
许多用户第一次使用 Clash 时,会把「能上网」等同于「全部走代理」。这在短期内似乎省事,却会带来两个长期问题:国内网站绕路海外节点导致延迟升高、视频缓冲变慢;以及无谓消耗代理流量与节点带宽,套餐更快用尽。更合理的做法,是让访问大陆常用服务时尽量直连(DIRECT),仅在访问被墙站点、海外业务或需要特定出口时走代理策略组。
Clash 系列内核(含 Mihomo / Clash Meta)通过 rules 自上而下匹配第一条命中的规则,再交给对应的策略(policy)执行。策略往往指向某个策略组(proxy-group),由你在图形界面或 YAML 里定义「手动选节点」「自动测速」「故障转移」等行为。理解这一链条,是做好分流的前提。
若你尚未导入订阅,可先完成订阅链接导入与节点拉取,再回到本文调整规则;否则只有空策略组、没有可用节点,规则写得再漂亮也无法落地。
规则匹配顺序:从上到下,第一条命中即停
这是分流里最容易被忽略、却最关键的一点:规则列表是有顺序的。内核从 rules: 的第一行开始逐条比对,一旦某条规则的条件满足,就采用该条指定的策略,不再继续向下匹配。因此,更具体、更需要优先处理的规则应写在前面;宽泛的兜底规则放在后面。
实践中推荐的思维顺序大致是:先放行局域网与本机特殊地址,避免把打印机、NAS、本机回环误送去代理;再处理明确要直连或明确要代理的域名或 IP;然后用 GEOIP 等大规则区分国内外;最后一条通常是 MATCH,指向你的默认策略组(例如「漏网之鱼」全部走代理或全部直连,取决于你的风险偏好)。
rules 的可视化编辑。若你同时手改 YAML 与在界面里拖拽规则,注意保存时可能互相覆盖,建议固定一种主要维护方式。
策略组怎么设计:别把所有流量绑在一个「PROXY」上
常见模板里会出现名为 PROXY、🚀 节点选择、手动切换 等策略组,本质是一组可选节点加上选择逻辑。为了国内外分流,你至少需要:
- 直连出口:策略为
DIRECT,表示不经代理,使用系统默认路由访问目标。 - 代理出口:指向你的订阅节点池或嵌套的自动选择、负载均衡等子组。
- (可选)国内专用组:有些规则集会把「国内视频、网银」等域名归到单独组,便于你在国内节点与直连之间二选一。
「最佳实践」并不是规则越多越好,而是策略语义清晰:你能一句话说清「这条规则为什么走 DIRECT、那条为什么走 PROXY」。当出现问题时,打开连接日志对照域名或 IP,也能快速判断是规则写错、DNS 解析异常,还是节点本身不可用。
域名类规则:DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD
在主机名已确定的情况下,域名规则是最直观的一层。DOMAIN 精确匹配单个主机名;DOMAIN-SUFFIX 匹配后缀,适合覆盖某家服务的子域集群;DOMAIN-KEYWORD 按关键字匹配,覆盖面大但容易误伤,适合谨慎使用。
例如,你希望某海外站始终走代理,可以写 DOMAIN-SUFFIX,example.com,PROXY(具体策略名以你配置文件为准)。若某国内站点被错误送去代理,常见原因是上游规则集把它归到了「国外」或关键字规则过宽,此时可以在前部增加一条更优先的 DOMAIN 规则指向 DIRECT 进行覆盖。
注意:域名规则依赖正确的 DNS 解析结果。若本地 DNS 返回了错误或受污染的地址,规则可能在 IP 层再次与预期不符。这与 fake-ip、嗅探(sniffer)等配置有关,下文会简要提及。
IP 与地区规则:IP-CIDR、GEOIP
当连接目标已经是 IP,或你需要按网段批量分流时,会使用 IP-CIDR 或 IP-CIDR6。典型用途包括:把局域网段、组播地址设为直连,以及为已知 CDN 网段写固定策略。
GEOIP 则根据 IP 归属地判断流量走向,常用于「中国大陆 IP 直连,其余走代理」这类粗粒度分流。使用前请确认规则文件或内核已包含对应的 GeoIP 数据库,且版本不会过旧;数据库长期不更新可能导致误判增多。
rule-providers:用规则集减少手写维护量
手写几百行 DOMAIN 不现实。rule-providers 允许你从远程 URL 或本地文件加载规则集,并在 rules 里以 RULE-SET 形式引用。社区维护的 ACL4SSR、各类「直连/代理」列表,本质都是把大量域名或 IP 分类打包,由你决定每一类对应 DIRECT 还是 PROXY。
使用规则集时建议关注三点:来源可信度(避免引用不明第三方)、更新频率与体积(过大规则集可能影响启动与内存)、以及与自身策略命名一致(规则里写的策略组名必须在 proxy-groups 中存在)。
下面是一段仅供理解结构的示意,实际字段名请对照你所用 Mihomo 版本文档,勿盲目整段复制到生产环境。
# Example only — align with your Mihomo version
rule-providers:
cn_direct:
type: http
behavior: domain
url: "https://example.com/rules/cn.yaml"
path: ./ruleset/cn.yaml
interval: 86400
rules:
- RULE-SET,cn_direct,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY
DNS 与规则:分流是「域名 + IP」两条线的配合
仅写好 rules 并不等于万事大吉。DNS 模式(如 redir-host 与 fake-ip)会改变「何时解析、谁来解析、解析结果给谁用」。在 fake-ip 模式下,部分连接会先拿到本地虚拟 IP,再通过嗅探还原域名做规则匹配;若嗅探与规则不协调,可能出现个别站点证书报错或策略不符合预期。
实操建议是:先在你能接受的模式下跑通「国内直连、海外代理」大框架,再针对异常域名做单独 DOMAIN 规则或 DNS 微调。若你启用了 TUN 模式,DNS 与路由往往绑定更紧,更要注意避免 DNS 环路或劫持冲突。
常见误区与排查顺序
误区一:国内网站慢或打不开,却先换节点。应先确认该请求是否被错误匹配为代理,或 DNS 是否解析到了异常 IP。换节点往往解决不了规则或 DNS 层面的问题。
误区二:规则抄了很多条,但顺序反了。记住「自上而下第一条命中」,把兜底类 GEOIP、MATCH 放在后面,细粒度规则放在前面。
误区三:忽略局域网与系统更新地址。部分规则模板会包含 GEOIP,private,DIRECT 等,若缺失,可能导致内网资源异常。请结合自己的网络环境检查。
推荐的排查顺序是:在客户端连接日志中确认域名 / IP、命中规则名、所用策略组是否一致;再检查对应策略组内节点是否可用;最后才考虑协议、UDP、TUN 等进阶因素。更系统的安装与基础概念也可对照全平台安装与配置教程。
写在最后
好的规则分流,本质是在可控复杂度内,让流量走最符合你使用习惯的路径:日常影音、购物、政务类站点尽量直连,减少绕路;需要稳定跨境访问的应用再走代理。随着 Mihomo 与图形客户端持续更新,规则集与策略组的维护成本已比早年纯手写 YAML 时低得多,但仍需要你理解「顺序、策略、DNS」三者的关系,才能在出问题时快速定位。
相比零散搜索过时片段,使用一体化维护良好的客户端与内核组合,能在规则兼容性与安全更新上省心不少。若你还没有合适的安装包,可从我们的客户端下载页获取当前系统对应的版本,再按本文思路逐步打磨自己的分流方案。→ 立即免费下载 Clash,开启流畅上网新体验。