Clash 分流规则怎么写才不漏域名
Clash 分流规则写得不漏域名,本质是让每一个目标请求都能被精准匹配到对应策略组,而不是因规则顺序、通配符模糊或遗漏导致流量走错路径。常见问题不是规则本身复杂,而是对域名解析行为、子域名继承关系、以及实际网络请求的全貌缺乏认知。比如你配置了 `example.com` 但没覆盖 `www.example.com`,或者只写了 `baidu.com` 却忽略了 `map.baidu.com` 这类子域名,结果就是本该走代理的访问被放行直连,造成隐私泄露或服务不可用。
第一步,必须明确你的分流目标:哪些域名需要走代理(如境外网站、特定工具),哪些应直连(如国内 CDN、本地服务)。不要依赖“默认走代理”或“默认走直连”的粗暴逻辑。建议从浏览器开发者工具的 Network 面板抓取真实请求,观察完整域名与协议(如 `https://api.github.com`),并记录所有子域名层级。尤其注意那些看似无关却频繁出现的请求,比如广告加载、统计上报、字体资源等,它们往往隐藏在主页面之后,若未覆盖就会漏掉。
第二步,使用精确匹配 + 通配符组合构建规则。优先使用 `DOMAIN` 规则而非 `DOMAIN-SUFFIX`,因为后者会无差别匹配所有子域名,容易误伤。例如,`DOMAIN:github.com` 精确命中 `github.com`,而 `DOMAIN-SUFFIX:github.com` 会同时命中 `github.com`、`api.github.com`、`assets.github.com` 等。若你只想代理 GitHub 主站,就用前者;若想全部代理其生态,则用后一种方式,但需配合排除规则防止误伤。
第三步,建立白名单机制。对于已知的国内服务,如 `baidu.com`、`qq.com`、`alibabacloud.com`,应提前列出并加入直连规则。特别注意那些使用泛域名证书的服务,比如 `*.cdn.cloudflare.net`,这类域名数量庞大且动态变化,直接用 `DOMAIN-SUFFIX:cdn.cloudflare.net` 可能导致大量非必要请求被错误代理。此时应结合 IP 段或自定义 IP 列表进行过滤,避免因域名规则过宽而漏判。
第四步,利用 `DOMAIN-KEYWORD` 和 `DOMAIN-KEYWORD-EXACT` 做补充。当某些域名无法通过精确匹配覆盖时,可用关键词辅助拦截。例如 `DOMAIN-KEYWORD:google` 能捕获 `google.com`、`googleapis.com`,但也会误触 `google.com.cn`。若需更精准,可使用 `DOMAIN-KEYWORD-EXACT:google` 来限定仅匹配含 “google” 的完整域名,避免扩展匹配。 延伸阅读:PikPak 文件怎么转存到本地硬盘。
第五步,测试阶段务必开启日志功能。在 Clash 客户端中启用“日志记录”,观察每条请求的最终路由结果。如果发现某域名始终走直连,检查是否被后面的规则覆盖——规则顺序至关重要。通常将最具体的规则放在前面,最通用的放后面。例如:
``` DOMAIN:github.com DOMAIN-SUFFIX:google.com DOMAIN-KEYWORD:aliyun FINAL,Direct ```
最后,别忘了验证实际场景中的行为。比如你在用 PikPak 下载文件时,若发现下载链接跳转到 `pikpak.com` 但未走代理,说明规则缺失。此时需查看其真实请求域名,可能是 `api.pikpak.com`、`login.pikpak.com`,这些都需单独添加。同样,简历里的数据怎么写才可信?关键在于提供可追溯的来源与上下文,就像分流规则必须基于真实请求数据,不能凭空假设。每个规则背后都应该有对应的请求截图或日志记录作为依据。
真正可靠的分流规则,不是堆砌越多越安全,而是以最小代价实现最大覆盖。每一次漏掉的域名,都是潜在的风险入口。