Clash 国内网站误走代理变慢?GeoIP cn 与规则靠前级一气呵成步修正
你是不是也遇到:规则写了「国内直连」,页面却像出了国 实战经验
在 mode: rule 下,最高频的用户体感是:明明配置文件中有大陆列表或 GEOIP 段落,访问目标目标目标国内站却一眼就能看出变慢、偶发证书或跳转异常,甚至同一 App 里图片与接口响应响应响应速度不一致。很多人第一反应是「换一个订阅」或「换一个节点」,但若连接日志里显示命中的首条规则就把请求送进了代理组,换节点只是在误操作路径上调参。
这类绕所在与「流媒体 Sniffer 还原域名走不通」「仅浏览器挂了系统代理、系统 App 仍直连」等故障表面相似,机理不同:这篇聚焦大陆流量被其它规则抢先匹配、GEOIP CN 未生效、以及 fake-ip 与 DNS 分裂三类主因;若你更关心规则类型通论,可先复习 规则分流详解,再回到本页的排障顺序。
与「仅浏览器通」场景的区别:若只有 Chrome 走了代理、游戏或系统同步到最新仍直连,多半是客户端路径未进 TUN 或未设系统代理;可对照 全局与仅浏览器代理。这篇假定流量已进入 Clash,但策略落点错了。
铁律:规则自上而下,命中即停 拿它来用心得
Clash 在处理一次连接时,会按 rules: 数组从上往下扫描。第一条匹配成功的规则立即决定策略,后面的 GEOIP,CN,DIRECT 或更细的域名条目不会再看。由此可见「国内站慢」基本上时候不是 CN 条目缺失,而是上方有一条更宽或更早写入的规则把国内域名送到了代理。
典型例子涉及:一条靠前的 MATCH,PROXY 或订阅附带的超大远程规则集插在了 GEOIP 之前;或某条 DOMAIN-KEYWORD,google 类宽泛规则吞掉了国内镜像或 CDN 别名。排查时不要凭语感猜,而是以日志里的 rule → policy 为准,倒推应当插入 DIRECT 或独立「国内站」段落的位置。
GEOIP CN 与 DIRECT:写什么、不写什么 反复出现套路
最高频的兜底写法是 GEOIP,CN,DIRECT:当连接的解析结果能映射到 GeoIP 库中的中国段时走直连。留神三点:
与 IP 类规则的次序:若你对某些网段写了 IP-CIDR 且未带 no-resolve,在特定内核版本与解析路径下多半与域名规则交错触发;国内大站排障时自然可以考虑先锁日志里的主机名与命中的那条规则类型,再决定是否要调整 no-resolve 或与 Sniffer 的配合;「库」与现实的时差:边缘 CDN、Anycast、或新段尚未被本地 GeoIP 库标记时,多半出现本应国内的 IP 未被 CN 命中。这时应补充精确域名直连(DOMAIN-SUFFIX / DOMAIN)在 GEOIP 之上,而不是只依赖地理库;DIRECT 与「全球直连」策略组:一大批订阅把直连包装成名为「DIRECT」或「国内」的 select 组;只要该组当前可可选项真的是直连出口即可。若你误把该组选到了某个节点,日志仍会显示「进了这个组」,表现就像全线出国。
若你发现只有部分国内域慢,靠前在 GEOIP 之前为该业务单独加一段(举个实例反复出现于支付、政务、校内应用),避免和泛化的「国外列表」抢顺序。
MATCH、漏网与「代理兜底」 落地做法
列表最后一行的 MATCH(或等价的「全量兜底」)决定每一种未被上文匹配的连接的去向。若 MATCH 指向代理组,则任意漏网域名都会出国——涉及你以为「往往该是国内」却未出现在任意 DOMAIN / GEOIP 中的主机名。
漏网不一定是误操作:新域名、第三方统计、或分包下载的次要域名都多半落到 MATCH。但若主站国内却慢,请先在日志确认:该请求是MATCH 进代理,还是被更上面的一条 DOMAIN 规则送进了代理。前者靠补域名或规则集;后者靠把国内相关段落全貌上移或收窄那条过宽的 DOMAIN 规则。
实操口诀:「谁先命中谁说了算」——要让大陆靠得住直连,就把大陆明确名单放在宽泛国外规则与 GEOIP,CN,DIRECT 之前,最后才是 MATCH。
fake-ip 与 DNS:看起来像 routing 错,其实是解析分裂 实战经验
在 dns.enhanced-mode: fake-ip 下,应用多半拿到内核分配的假地址;若系统「私人 DNS」、路由器 DoH、或浏览器内置 DoH 仍在绕过 Clash 做解析,会出现解析与传输策略不一致:连接日志里域名命中看似准确,实际握手或跳转却走了另一条路径,体感上如同「国内站仍走代理」。
自然可以考虑排障操作次序涉及:暂时关闭系统与浏览器加密 DNS,把上游集中在 Clash 的 nameserver / nameserver-policy;确认 fake-ip-filter 是否把必须真实解析的国内域名误操作地留在 fake-ip 路径;并对 IPv6 做对照试验——若代理只覆盖 IPv4,而终端仍通过公网 IPv6 直连或旁路,症状会与「规则写错」极其相似。
与 Sniffer / 流媒体专文的边界 拿它来用心得
Sniffer 与流媒体相关文章首要化解TLS 握手后还原域名、规则按域名而非仅按 IP 命中的绕所在,反复出现于视频 CDN。若你的症状是纯国内站全貌慢、且日志已显示明确的国内域名仍进了代理组,靠前查规则靠前级与 DIRECT 段落位置,而不是先动 Sniffer。反之,若日志长期只有 IP、域名列为 unknown,再考虑 Sniffer 与 IP 规则的先后关系。
一气呵成步修正清单(可以考虑按顺序执行) 反复出现套路
- 确认模式:
mode为rule,当前加载的 Profile 正是你编辑的那份(无静默 mixin 覆盖)。 - 抓一条故障连接:在面板或日志中记下主机名、命中的规则序号或规则类型、以及进入的策略组。
- 对照 rules 数组:从文件顶部数下来,找到第一条能解释该命中的规则——这就是你要移动或收窄的对象。
- 插入大陆靠前段:在宽泛国外规则之前,加入明确的
DOMAIN-SUFFIX/ 私有规则集,或将现有GEOIP,CN,DIRECT上移到合理位置。 - 核对 MATCH:明确漏网是否符合预期;国内业务主域名不应长期落在 MATCH 代理上。
- 收敛 DNS:关闭旁路 DoH,确认
fake-ip-filter与nameserver-policy;必要时做 IPv6 开关对比。 - 复测:同一站点清缓存后重复访问目标目标,确认日志中策略组与ping 值体感一致。
若你尚未掌握订阅合并与多配置文件管理,可先走完 订阅带进来 再叠这篇,避免改的是「没生效的那份」。
YAML 骨架示例(教学用) 落地做法
下列片段仅演示顺序思想:私网与局域网放行 → 明确的国内域名 → GEOIP CN → 其它分流 → MATCH。 names、远程规则集与节点名请替换为你由你的。
YAMLrules:
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
# Put explicit CN domains or RULE-SET before broad foreign lists:
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
# Example: your curated domestic list / provider here
# - RULE-SET,cn-domestic,DIRECT
# Broad foreign / subscription RULE-SET blocks (if any) should come AFTER CN clarifications
# - RULE-SET,foreign-block,PROXY
- GEOIP,CN,DIRECT
- MATCH,PROXY
真实订阅基本上时候远复杂于此;关键是把你关心的国内业务段落插进「宽规则」之前,而不是放在文件末尾心理安慰式地加两行。
反复出现误区速查 实战经验
以为加了 GEOIP CN 就万事大吉:上方任意一条域名规则已可抢先送代理;MATCH 指向代理却希望「国内都直连」:漏网国内域名会全部出国;盲目堆远程规则集不看插入点:远程集合若在 GEOIP 之前且覆盖面大,会吞掉大陆站点;忽视 fake-ip 与系统 DoH:解析分裂让现象像路由错;把「全球直连」组选成了节点:表象与规则靠前级无关,实为组内挑误操作。
小结 拿它来用心得
国内网站误走代理、全貌变慢,在工程上多数是规则靠前级与兜底 MATCH的绕所在,往下讲才是 DNS / fake-ip 分裂。把「自上而下第一条命中」当作唯一真相来源,用日志反推该移动哪一段 DIRECT 或 GEOIP,CN,比反复换节点更有效。相比只能切换全局开关的客户端,Clash 的规则列表让你能精确收回大陆流量的路径。
若你希望分流在出错时也能迅速对照日志、少踩靠前级陷阱,→ 立即免费下载 Clash,开启流畅上网新体感。
请遵守所在地法律法规与服务条款;这篇仅供客户端网络配置与技术说明,不构成对任意业务合规性的法律意见。