Skip to main content

Clash 的一些高级用法

介绍

Clash 有一些比较高级的用法,灵活设置可以实现你的个性化需求。本篇需要有一定的计算机基础。

混合模式

从米白云处导入的订阅链接,会把节点连带分流规则都写入到配置文件里。默认的分流规则也许并不适合你的要求,如果直接修改配置文件,等到订阅更新后,修改的规则会丢失。借助混合模式,你自己修改的规则有最高优先级,即便更新订阅后也仍然生效。

1、配置混合模式

针对上面的例子,我们按照下面步骤

  • 进入 Settings 页面
  • 滚动至 Profile Mixin 栏
  • 点击 YAML 右边 Edit 小字打开编辑界面
  • 修改配置

2、指定网站不走代理

如果你想要实现 domain.com 走代理:

mixin: # 注意下面缩进
rules:
- "DOMAIN-SUFFIX,ident.me,DIRECT"

然后点击右下角的 保存

3、指定网站走代理

如果你想要实现 linkedin.cn 走代理:

mixin: # 注意下面缩进
rules:
- "DOMAIN-SUFFIX,linkedin.com,节点选择"

然后点击右下角的 保存

4、打开混合模式

回到 General 页面,打开 Mixin 开关即可。

TUN 模式

对于不遵循系统代理的软件,TUN 模式可以接管其流量并交由 CFW 处理,在 Windows 中,TUN 模式性能比 TAP 模式好

启动 TUN 模式

启动 TUN 模式需要进行如下操作:

  • 1、点击 GeneralService Mode 右边 Manage,在打开窗口中安装服务模式,安装完成应用会自动重启,Service Mode 右边地球图标变为绿色即安装成功
  • 2、点击 GeneralTUN Mode 右边开关启动 TUN 模式

提示

如果在第一步安装失败,可以尝试手动安装。👉点我 下载 Wintun 压缩包,解压后进入 bin 文件夹,出现的4个文件夹代表对应的系统平台:

  • amd64:intel 64位操作系统
  • x86:intel 32位操作系统
  • arm64:arm 64位操作系统
  • arm:arm 32位操作系统

将属于自己系统的文件夹打开,复制里面的 wintun.dll 文件到 clash 主目录,然后重新操作上面的2个步骤。快速打开 clash 主目录方法:

  • 打开 clash 软件,切换到 General,点击 Home Directory

修改配置文件

因为每次更新订阅都会丢失修改,所以这里选择使用 Mixin

mixin:
tun:
enable: true
stack: system # or gvisor
# dns-hijack:
# - 223.5.5.5:53
# - 223.6.6.6:53
auto-route: true
auto-detect-interface: true # 自动检测出口网卡

检查

打开控制面板,依次进入 控制面板 > 网络和Internet > 网络连接,在这里可以看到你本机的所有网卡设备。如果clash设置TUN模式成功,会看到名为 Clash 的虚拟网卡。

TAP 模式

对于不遵循系统代理的软件,除了使用 TUN 模式,也可以使用 TAP 模式可以接管其流量并交由 CFW 处理。推荐使用 [TUN 模式](#TUN 模式)

安装 TAP 网卡

点击 General 页面中 TAP Device 选项的 Manage 按钮,在弹出对话框中选择Install将会安装 TAP 网卡,此网卡用于接管系统流量,安装完成可在系统网络连接中看到名为cfw-tap的网卡。

#启动 TAP 模式 使用的 Profile 中包含 listen 设置:

dns:
enable: true
enhanced-mode: redir-host # 或 fake-ip
listen: 0.0.0.0:53
nameserver:
- 223.5.5.5

工作原理

此版本可以通过设置 Interface Name (自动识别) 属性避免回环,并且支持了 UDP 及 IP 类请求,请在Settings页面Interface Name选项中选择出站网卡(通常为本机物理网卡)

注意事项

当enhanced-mode设置为fake-ip时,会出现系统检测到网卡无法联网,微软系 APP 无法登陆使用等问题,可以通过添加fake-ip-filter解决:

dns:
enable: true
enhanced-mode: fake-ip
listen: 0.0.0.0:53
nameserver:
- 223.5.5.5
fake-ip-filter:
- "dns.msftncsi.com"
- "www.msftncsi.com"
- "www.msftconnecttest.com"
提示

TAP 模式更推荐使用 redir-host 模式

加速其他设备

请参考:🔗 Clash 加速其他设备方法

配置文件预处理

简便方法(YAML)

如果需要对下载地址为 https://example.com/profile.yaml 的配置文件进行预处理,操作如下:

  • 进入 Settings 界面
  • 滚动至 Profiles 栏
  • 点击 Parsers 右边 Edit 打开编辑器,填入:
parsers:
- url: https://example.com/profile.yaml
yaml:
prepend-rules:
- DOMAIN,test.com,DIRECT # rules最前面增加一个规则
append-proxies:
- name: test # proxies最后面增加一个服务
type: http
server: 123.123.123.123
port: 456
  • 点击编辑器右下角保存按钮

当配置文件触发刷新(包括自动更新)时,CFW 会读取yaml字段定义的值,将对应值插入/合并到原配置文件中

参数说明

值类型操作
append-rules数组数组合并至原配置rules数组后
prepend-rules数组数组合并至原配置rules数组前
append-proxies数组数组合并至原配置proxies数组后
prepend-proxies数组数组合并至原配置proxies数组前
append-proxy-groups数组数组合并至原配置proxy-groups数组后
prepend-proxy-groups数组数组合并至原配置proxy-groups数组前
mix-proxy-providers对象对象合并至原配置proxy-providers中
mix-rule-providers对象对象合并至原配置rule-providers中
mix-object对象对象合并至原配置最外层中
commands数组在上面操作完成后执行简单命令操作配置文件

Commands 使用方法(beta)

commands 是一组简单的命令,作为上面操作的补充

例子:

commands:
- dns.enable=false # 命令1
- proxy-groups.0.proxies.2+DIRECT # 命令2

每个命令可以被分为三个部分,分别是:定位+操作+设定值

命令 1 中,定位是dns.enable,操作是=,设定值是false

命令 2 中,定位是proxy-groups.0.proxies.2,操作是+,设定值是DIRECT

定位

定位中每个层级以.分割,数组类型的定位下标由 0 开始计算,命令 2 中proxy-groups.0即表示定位至第 1 个策略组,.proxies表示访问第一个策略组的 proxies 属性,.proxies.2表示 proxies 属性的第 3 个位置

如果不想用序号定位,也可以使用name值定位,proxies以及proxy-groups中的每个项目都会有name属性。例如在proxies中已经定义了名为debug的节点,那么修改其udp参数的定位即为proxies.(debug).udp,名称两边的()是保证识别,如果节点名不包括+、.或=这几个符号,也可以省略不写

操作

目前支持三种操作:

  • =:覆盖
  • +:插入
  • -:删除

命令 1 中,=表示将dns下enable的值覆盖为false

命令 2 中,+表示在定位的策略组中的proxies数组中添加一个名为DIRECT的值,原本其他值被向后移动 1 位。如果此处改成=,则会覆盖原来第一个值

设定值

设定值是用于插入或覆盖的值,如果操作是-,则此值可有可无,例如:

commands:
- proxies.0- # 命令3

此处可以将配置文件proxies的第 1 个节点删除

如果设定值为纯数字,则会被识别为整数,为true|false则识别为布尔类型,如果 JSON 编码通过则识别为对象

v0.13.7 版本更新后,支持 3 个内置值用于设置策略组节点,分别是[]proxyNames,[]groupNames和[]shuffledProxyNames,并支持使用正则过滤其中节点,例子如下:

yaml:
prepend-proxy-groups:
- name: myGroup # 建立新策略组
type: fallback
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies:
- DIRECT

commands:
- proxy-groups.myGroup.proxies=[]proxyNames|HK # 向策略组添加所有定义的节点名,并按“HK”正则表达式过滤

轻量模式

依赖于内置 Service Mode,启动轻量模式后,关闭软件界面后 CFW 将会完全关闭,仅保留 Clash 核心继续工作。再次启动 CFW 则会快速恢复并连接核心。

此模式下,CFW 界面关闭后将不再占用系统内存,但同时部分功能将会失效,例如:

  • 任务栏图标及菜单
  • 配置文件定时更新
  • TAP 模式
  • 后台启动其他应用
  • 后台更新检测
  • WARNING

其他未提及功能也可能会受到影响,如追求更好体验,不建议使用此功能

开启步骤

  • 1、点击General中Service Mode右边Manage,在打开窗口中安装服务模式,安装完成应用会自动重启,Service Mode 右边地球图标变为绿色即安装成功

  • 2、点击Settings界面中General模块中Lightweight Mode进行开启

开启后关闭界面操作即自动关闭软件,重新启动软件会自动恢复,已选择配置文件及节点不会丢失。

绕过系统代理

  • 进入 Settings 页面
  • 点击 System proxy Bypass 右边 Edit 小字打开编辑界面
  • 若要增加绕过example.com域名,只需在修改编辑界面内容为:
bypass:
- "example.com" # 下面字段可不删除
- 127.0.0.1
- ...

点击编辑器右下角保存

bypass 类型为数组,item 为需要绕过的域名或节点,支持通配符*

提示

最后一行对应系统中“请勿将代理服务器用于本地(Intranet)地址”选项,请确保此项在最底部