Clash script脚本是实现高级流量分流的核弹,通过自定义脚本可精确控制代理行为,本文详解脚本配置方法、代理组选择策略及TUN模式与系统代理的区别,帮助你完成精细化访问控制。
Clash script脚本是什么
Clash script脚本用于实现复杂的分流逻辑和自动选择策略,通过编写脚本,可以根据域名、IP、地理位置等条件动态选择最优代理通道。
脚本基本结构如下:
script:
code: |
def main(ctx, metadata):
domain = metadata["host"]
if domain.endswith(".cn"):
return "DIRECT"
return "auto-group"
代理组类型与适用场景
代理组是Clash的核心组件,分为三种类型:
select(手动选择)
适合需要手动切换节点的用户,配置示例:
proxy-groups:
- name: 手动组
type: select
proxies:
- 香港节点A
- 日本节点B
- 美国节点C
url-test(自动测速)
自动测试节点延迟,选择最优通道:
proxy-groups:
- name: 自动测速组
type: url-test
proxies:
- 香港节点
- 日本节点
- 美国节点
url: http://www.gstatic.com/generate_204
interval: 300
fallback(故障转移)
优先使用第一个可用节点,失败则自动切换:
proxy-groups:
- name: 故障转移组
type: fallback
proxies:
- 主节点
- 备用节点
url: http://www.gstatic.com/generate_204
interval: 300
TUN模式与系统代理的区别
| 特性 | TUN模式 | 系统代理 |
|---|---|---|
| 接管流量 | 所有流量(含UDP/游戏) | 仅HTTP/HTTPS |
| 适用场景 | 游戏、视频、UDP应用 | 浏览器访问 |
| 配置复杂度 | 较高 | 简单 |
TUN模式配置示例:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8
- 8.8.4.4
auto-route: true
分流规则写法与优先级
规则类型
- DOMAIN:精确匹配域名
- DOMAIN-SUFFIX:域名后缀匹配
- IP-CIDR:IP段匹配
- GEOIP:地理位置匹配
优先级顺序
DOMAIN > DOMAIN-SUFFIX > IP-CIDR > GEOIP > MATCH
配置示例:
rules: - DOMAIN-SUFFIX,google.com,自动测速组 - DOMAIN-SUFFIX,youtube.com,自动测速组 - IP-CIDR,10.0.0.0/8,DIRECT - IP-CIDR,172.16.0.0/12,DIRECT - GEOIP,CN,DIRECT - MATCH,故障转移组
常见问题FAQ
脚本不生效怎么办
现象:配置脚本后代理行为无变化
原因:语法错误或未启用script功能
解决:检查YAML缩进,使用在线工具验证脚本语法
代理组切换失败
现象:节点无法自动切换
原因:测试URL不可达或间隔时间过短
解决:更换为http://www.gstatic.com/generate_204,间隔设为300秒以上
TUN模式导致断网
现象:开启TUN后无法访问网络
原因:DNS冲突或内核不兼容
解决:关闭DNS劫持,更换为meta内核
节点选择建议
不同使用场景对节点要求不同:
- 4K视频:选择高带宽专线,延迟可适当放宽
- 游戏加速:选择低延迟节点,优先ping值低于50ms
- 跨境办公:选择稳定性高的线路,避免频繁掉线
判断节点服务商靠不靠谱,看三点:是否提供测速通道、是否有客服响应、节点更新频率是否正常。
通过合理配置Clash script脚本和代理组,可实现精细化的流量控制,建议定期更新订阅,使用SubConverter工具转换不同配置格式,找到最适合自己的跨境访问方案。
