Clash script脚本功能使用教程

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工具转换不同配置格式,找到最适合自己的跨境访问方案。

您可以还会对下面的文章感兴趣: