Clash 分流规则怎么写才不漏域名
在编写 Clash 分流规则时,最常被忽视的其实是通配符的精确度。许多用户直接使用 `*.example.com` 作为域名匹配规则,但这种写法会无差别地覆盖所有子域名,包括 `api.example.com`、`cdn.example.com`、`admin.example.com` 等,导致部分服务无法正常访问。正确做法是根据实际流量行为拆分规则,例如仅对 `download.example.com` 启用代理,而将 `login.example.com` 放入直连列表,避免因误判造成连接失败。
要确保不漏域名,必须建立完整的域名映射表。以国内主流视频平台为例,B站的播放器请求主要来自 `upos-hz-mirrorakam.akamaized.net` 和 `upos-sz-mirrorkodo1.bilivideo.com`,若仅配置 `bilibili.com` 一类通用规则,会导致视频加载缓慢或失败。建议通过浏览器开发者工具抓取真实请求域名,导出完整列表后逐条分析,剔除冗余项,最终形成精准的分流清单。
当遇到动态域名或短链服务时,如微博的 `weibo.cn` 或抖音的 `v10.mediapool.com`,直接添加主域名往往无效。这类服务通常依赖临时生成的子域名,需采用正则表达式进行捕获。例如使用 `^.*\.v\d+\.mediapool\.com$` 可覆盖所有形如 `v10.mediapool.com`、`v25.mediapool.com` 的请求,比单纯写 `*.mediapool.com` 更具针对性,同时减少误触。
对于频繁更新的 CDN 域名,如阿里云、腾讯云等,不能依赖静态规则。应启用自动解析机制,结合 DNS 模块中的 `ipset` 或 `host` 功能,将常见云服务的 IP 段加入直连列表。例如,阿里云全球公网 IP 范围约有 300 个 /24 段,可通过官方公开数据集导入,实现基于网络位置而非域名的分流,有效规避因域名变更导致的规则失效。
在规则优先级设置上,必须遵循“具体优于泛化”的原则。例如,若同时存在 `*.pikpak.com` 和 `api.pikpak.com` 两条规则,应将后者置于前者之前。否则,即使你已为 `api.pikpak.com` 配置了直连,仍可能被 `*.pikpak.com` 的代理规则拦截。这不仅影响性能,还可能导致 PikaPak 客户端上传失败。特别提醒:若发生误删文件的情况,恢复路径取决于备份策略——定期同步至本地或第三方网盘才是关键,而非依赖平台自带的回收站功能,因为 PikaPak 误删文件还能恢复吗?答案往往是否定的。 延伸阅读:PikPak 误删文件还能恢复吗。
规则数量过多反而容易引发冲突。建议每类服务控制在 10 条以内,超过即考虑合并。例如将多个教育类网站(如 `mooc.cn`、`edx.org`、`coursera.org`)统一归入 `education` 组,再通过组内规则分发。这样既能保持结构清晰,又能降低误判风险。同时,避免在规则中使用模糊关键词如 `cloud`、`video`,这些词极易误伤正常流量。
最后,定期验证规则有效性至关重要。推荐每周运行一次自动化检测脚本,模拟真实用户行为,测试关键服务是否按预期走代理或直连。可借助 Python 编写的简单爬虫,对已知域名发起请求并记录响应来源。若发现某本应直连的域名却走代理,立即修正规则。此外,简历里必须避开的十句空话,如“具备很强的学习能力”、“工作认真负责”,在技术文档中同样应杜绝。真正有效的规则描述应是“`api.bilibili.com` → direct”,而不是“部分接口需要加速”。
当所有规则都经过实测与优化,才能形成稳定可靠的分流体系。记住:没有绝对完美的规则,只有持续迭代的实践。