规则集(rule-set)是Clash实现精细化分流的核心组件,本文详解rule-set的本地配置与远程订阅方法,涵盖代理组策略、TUN模式设置及常见分流规则语法,助你构建高效的国际网络加速方案。
Rule-Set基础认知
Rule-set将分散的规则条目集中管理,支持本地YAML文件或远程URL订阅,相比内联规则,独立规则集便于维护更新,特别适合处理大量域名或IP段的跨境办公需求。
代理组类型选择
配置rule-set前需明确代理组策略:
- Select: 手动选择节点,适合固定线路需求
- URL-Test: 自动测速选优,延迟敏感场景首选
- Fallback: 故障自动切换,保障学术资源访问稳定性
proxy-groups:
- name: "自动选择"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
- 节点A
- 节点B
配置步骤详解
准备规则集文件
创建ruleset目录,放置分类规则文件:
direct.yaml: 国内直连域名proxy.yaml: 国际加速域名block.yaml: 广告拦截
编写规则语法 支持DOMAIN、DOMAIN-SUFFIX、IP-CIDR、GEOIP四种匹配模式:
payload: - DOMAIN-SUFFIX,google.com,代理组名 - DOMAIN,cdn.example.com,DIRECT - IP-CIDR,142.250.0.0/16,代理组名,no-resolve - GEOIP,CN,DIRECT
引用远程规则集 在config.yaml中添加:
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- MATCH,FINAL
TUN模式与系统代理差异
系统代理: 仅接管HTTP/HTTPS流量,浏览器和应用层生效,配置简单但无法处理UDP。
TUN模式: 虚拟网卡接管所有流量(含游戏UDP、ICMP),实现真正的全局代理,开启TUN需管理员权限,建议配合fake-ip模式降低延迟。
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8:53
auto-route: true
auto-detect-interface: true
分流规则优先级策略
Clash按规则列表自上而下匹配,命中即停止,正确排序至关重要:
- 局域网IP(DIRECT)
- 广告拦截(REJECT)
- 国内域名(DIRECT)
- 国际学术资源(代理组)
- 最终匹配(MATCH)
使用no-resolve参数避免DNS泄漏:IP规则添加该参数后,仅当域名解析完成才匹配,防止未解析域名被错误路由。
常见问题排查
现象: 规则集加载失败,提示"404 Not Found" 原因: 远程URL失效或本地路径错误 解决: 检查raw.githubusercontent.com可访问性,改用jsDelivr或GitHub Proxy镜像
现象: 国内网站走代理,延迟增加 原因: GEOIP数据库未更新或规则顺序错误 解决: 下载最新Country.mmdb放置配置目录,确保GEOIP,CN,DIRECT位于代理规则之前
现象: 游戏丢包严重,TUN模式无效 原因: 未开启UDP转发或MTU设置不当 解决: 确认节点支持UDP,调整TUN的MTU值为9000或1500测试
对于需要稳定国际网络加速的用户,建议选择支持Clash订阅格式的服务商,定期更新规则集与节点配置可显著提升跨境办公体验,合理配置rule-set后,配合优质线路资源,能实现智能分流与低延迟访问的最佳平衡。