本文将讲述如何使用Clash工具。
- 一些
Links
- 安装
- 界面简介
- 获取配置文件
- 为什么需要
MIXIN
- 配置重置连接
- 配置
TUN
- 配置By-Pass
- 配置一些常用的
Mixin
- 关于配置时的
process name
- 配置UWP
- 关于代理服务器
- 关于更改代理服务器端口和允许局域网连接问题
- 关于 Switchy-Omega (SO) 使用
- 关于新版本
pip
报错无法使用问题 - 总结
一些 Links
- Clash repo: https://github.com/Dreamacro/clash
- Clash for Windows 文档: https://docs.cfw.lbyczf.com/
- Clash for Windows repo: https://github.com/Fndroid/clash_for_windows_pkg
安装
安装是一个非常繁琐的过程,特别是装错过一次的时候。
关于彻底卸载
如果没有自己瞎搞过的朋友可以跳过这一章节。
删除配置文件
%APPDATA%
~/.config/
删除wintun.dll
删除网卡
在控制面板中无法删除:
在设备管理器中卸载。
开始安装
前往项目GitHub的Release Page下载最新的Setup,然后双击安装。
界面简介
对于Proxies
和Profiles
可以这么理解:
Profiles
就是飞机场的订阅链接的内容Proxies
中的一系列设置反应Profiles
中的内容
拿某个机场的配置文件举例:
proxies
字段,列举了所有node
proxy-group
字段,则是开始定义各种模式Proxy
模式:可以选择底下列的一堆节点中的某一个节点MATCH
模式:可以选择Proxy
模式选择的节点或者DIRECT
(直连) 模式Streaming
模式:可以选择Proxy
的模式或其他一堆节点
获取配置文件
略。有订阅链接后:
为什么需要MIXIN
由于我们可能需要取消或者增加某些代理选项,所以我们需要修改配置文件。然而,即使我们修改了配置文件,订阅连接刷新时我们的修改就会被覆盖。所以,我们需要在配置文件以外的地方增加配置,由此产生了Mixin
注意:配置Mixin
时的任意字段对于其他的配置文件而言,不是增加,而是覆盖。
举个例子:
原来的配置文件有rules
:
...
rules:
- DOMAIN,app.adjust.com,DIRECT
- DOMAIN,bdtj.tagtic.cn,DIRECT
- DOMAIN,log.mmstat.com,DIRECT
- DOMAIN,sycm.mmstat.com,DIRECT
...
...
我们需要增加一条新的规则:
- DOMAIN, cdn.jsdelivr.net,DIRECT
在mixin
中,如果只写成下面这样是不行的:
mixin:
rules:
- DOMAIN, cdn.jsdelivr.net,DIRECT
因为这样就把原来复杂的规则组变成了- DOMAIN, cdn.jsdelivr.net,DIRECT
这样一句话。所以我们还需要复制原来的规则组,在规则组最上方添加我们的规则(优先级高):
mixin:
rules:
# custom
- DOMAIN, cdn.jsdelivr.net,DIRECT
# default
- DOMAIN,app.adjust.com,DIRECT
- DOMAIN,bdtj.tagtic.cn,DIRECT
- DOMAIN,log.mmstat.com,DIRECT
- DOMAIN,sycm.mmstat.com,DIRECT
...
...
注意:上面都是用 yaml
的方法配置的 mixin
,还可以用 Javascript
的方式配置 mixin
,方法可以参考官方文档和我的这个项目:https://github.com/JeffersonQin/clash-multi-mixin 其可以让 clash
的 mixin
同时支持多个飞机场。具体使用方法参见项目的 README。
配置重置连接
Settings中设置。此字段的意思为:如果规则改变了,需要重新开始所有连接。
配置TUN
TUN
即隧道,虚拟网卡,接管所有流量,交给Clash
处理。这个才是选择Clash
的主要理由。
首先是替换wintun.dll
。这个步骤可能不是必须的,但在老版本中可能需要,所以还是说一下。
[2022/02/20] Update: 新版本的配置方法可能会有些许不同,参考本节最后一小节。
安装 TUN 驱动
在上面的页面下载驱动。
在打开的文件夹中,用下载下来的文件替换掉wintun.dll
激活服务
直到框中的小地球为绿色,尝试Manage
(Install
/ Uninstall
) 反复尝试。
在配置文件中增加配置 (根据官方Wiki)
前面提到了Mixin
,这里我们就直接在mixin
中配置。在mixin
字段中增加如下字段:
dns:
enable: true
enhanced-mode: redir-host
nameserver:
- 223.5.5.5
- 223.6.6.6
tun:
enable: true
stack: gvisor # 使用 system 需要 Clash Premium 2021.05.08 及更高版本
dns-hijack:
- 198.18.0.2:53 # 请勿更改
auto-route: true
auto-detect-interface: true # 自动检测出口网卡
验证配置
到达这一步,虽然没有发挥出全部功力,但是已经能够正常上网了。这里,建议使用SwitchyOmega
的插件辅助验证。
在浏览器中,SwitchyOmega
设置为 直连模式 。
Update: 新版本配置方法
点击 TUN 的设置小按钮,进行配置:
配置By-Pass
配置Clash 系统代理需要绕过的东西
示例:
bypass:
- localhost
- 127.*
- 10.*
- 172.16.*
- 172.17.*
- 172.18.*
- 172.19.*
- 172.20.*
- 172.21.*
- 172.22.*
- 172.23.*
- 172.24.*
- 172.25.*
- 172.26.*
- 172.27.*
- 172.28.*
- 172.29.*
- 172.30.*
- 172.31.*
- '*.163.com'
- '*.126.com'
- '*.126.net'
- 'music.163.com' # 网易云域名1
- '*.music.126.net' # 网易云域名2
- '*.msftncsi.com'
- '*.kuwo.cn' # 酷我音乐
- '*.iqiyi.com' # 爱奇艺
- 192.168.*
- <local>
配置一些常用的Mixin
rules:
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,NeteaseMusic.exe,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- DOMAIN-SUFFIX,live.com,Proxy
- DOMAIN-SUFFIX,live.net,Proxy
- DOMAIN-SUFFIX,office.com,Proxy
- DOMAIN-SUFFIX,office.net,Proxy
- DOMAIN-SUFFIX,sharepoint.com,Proxy
- DOMAIN-SUFFIX,office365.com,Proxy
- DOMAIN-SUFFIX,officeppe.net,Proxy
- DOMAIN-SUFFIX,skype.com,Proxy
- DOMAIN-SUFFIX,onedrive.com,Proxy
- DOMAIN-SUFFIX,msocsp.com,Proxy
- DOMAIN-SUFFIX,msftncsi.com,DIRECT
- DOMAIN-SUFFIX,msauthimages.net,Proxy
- DOMAIN-SUFFIX,msauth.net,Proxy
- DOMAIN-SUFFIX,microsoftonline.com,Proxy
- DOMAIN-SUFFIX,msn.com,Proxy
- DOMAIN-SUFFIX,onenote.com,Proxy
- DOMAIN-SUFFIX,onenote.net,Proxy
- DOMAIN-SUFFIX,1drv.com,Proxy
- DOMAIN-SUFFIX,cdn.jsdelivr.net,DIRECT
- DOMAIN-SUFFIX,cdn.v2ex.com,Proxy
注意:
- 这里的
Proxy
是我自己的规则组名称,记得替换成你们的
关于配置时的process name
善用工具tasklist.exe
,里面有process name
。注意:基本上,大概率,大部分情况,process name
是有.exe
的后缀的。之前可靠大先辈发给我的一份当中没有.exe
,可能是不同版本间的差异,是个坑。
配置UWP
官方Wiki对于UWP不能联网的解释:https://github.com/Fndroid/clash_for_windows_pkg/wiki/UWP%E5%BA%94%E7%94%A8%E8%81%94%E7%BD%91
为了排除隐患,这里特别复制一份引用:
矛盾
Clash for Windows(下简称CFW)与shadowsocks-windows(下简称ss-win)最大的区别就是流量处理的方式上。
CFW使用策略组的方式允许用户对请求目的地进行动态调整,而ss-win则只能根据规则判断是直连还是代理。
设置为系统代理情况下
CFW处理方式
ss-win处理方式
可以看到,最大的区别就是对于直接连接的请求的处理方式,进入ss-win的所有请求均是需要代理的。
为什么CFW下UWP应用无法联网
默认的情况下,UWP应用会被禁止使用回环地址(127.0.0.1)的代理,而CFW和ss-win均是本地代理,都是通过回环地址提供代理的。
通过ss-win的处理方式可以知道,PAC分流会让系统放行直连流量,所以大部分不需要代理的UWP应用都可以在ss-win的全局PAC分流下使用。而CFW除了内置的几个cfw-bypass字段以外,所有流量都需要处理,这就使得几乎所有的UWP在开启系统代理时都不可用。
解决办法
如不使用UWP应用
直接开启CFW的系统代理(勾选System Proxy)即可让大部分软件使用代理连接并分流。
如要使用不需要代理的UWP应用
不建议开启CFW的系统代理,而推荐给需要代理的非UWP软件单独设置http或socks5代理,不设置系统代理的情况下,不会影响UWP应用联网。浏览器推荐使用SwitchyOmega。
如要使用需要代理的UWP应用
大部分UWP应用都没有开放代理设置功能(目前仅发现Telegram有),此时要让UWP使用代理就必须打开系统代理,同时需要在General界面点击EnableLoopback.exe并为需要代理的UWP应用解除回环代理限制。
一些特殊的UWP应用
网易云音乐:网易云音乐在设置系统代理后直接无法联网,开启Loopback限制也无效,可以使用cfw-bypass字段解除,阅读文档。
Instagram:禁止使用代理,所以无解。
至此,是官方对于UWP
的解释,然而我们仍然可以用其他工具接触UWP的回环地址代理限制。
关于代理服务器
默认情况下,7890
端口是代理服务器的端口。然而,当我尝试在WSL2
中使用proxychains
的时候却无论如何无法访问这个代理服务器。
经查,需要在防火墙上打洞。
既需要UDP,有需要TCP。配置之后,能够正常使用。
关于更改代理服务器端口和允许局域网连接问题
需要在多个地方都进行更改:
- General 面板
Mixin
示例:
mixin: # object
port: 7890
socks-port: 7891
allow-lan: true
关于 Switchy-Omega (SO) 使用
- 在Clash启用TUN时,SO直连模式可以连接
- 在Clash启用系统代理时,SO系统代理可以连接
- 此外,SO可以连接Clash的Proxy Server
注意:没有开启系统代理时SO仍然可以使用系统代理连接。推测原因:默认不使用代理,走了TUN通道,流量被接管。
关于新版本pip
报错无法使用问题
启用系统代理后就会报这个错,关闭即可。
经网友提示,pip 报错需要打开clash 配置的Specify Protocol 选项。
总结
- System Proxy : 设置系统代理(感觉没啥用)
- 开启 Clash,激活 TUN,虚拟网卡接管流量
- 全部走代理:Global
- 规则:Rule
- 直连:Direct
- 代理服务器只要开了 Clash 就会常开
28 条评论
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
tun模式下,怎么使用switchomega接管浏览器的分流?我尝试加入规则msedge.exe,procee-name,direct(浏览器默认都走直连),在此基础上再添加规则IP-CIDR,127.0.0.1,Proxy(由于Switchomega的代理服务器为127.0.0.1,所以我希望SO分发的数据走代理)。但是会提示报错(payload error),想请教一下你知道怎么实现吗?
tun模式下,怎么使用switchomega接管浏览器的分流?我尝试加入规则msedge.exe,procee-name,direct(浏览器默认都走直连),在此基础上再添加规则IP-CIDR,127.0.0.1,Proxy(由于Switchomega的代理服务器为127.0.0.1,所以我希望SO分发的数据走代理)。但是会提示报错(payload error),想请教一下你知道怎么实现吗?
我在设备管理器卸载了meta tunnel 但是重启还是会有 请问有什么办法彻底删除吗....我现在只要一重启这玩意就会出来 我得手动关闭才有网
入土了。
测试
坏了,Clash真入土了
坏了,Clash真入土了
大感谢!研究了半天怎么用js配mixin,现在文档也找不着了,网上一查全是重复的东西甚至是错误的东西(比如教人直接在YAML的mixin里加上自己想加的规则就行了,完全不提会覆盖掉别的……)看了您的博客和仓库才顺利配好了(ノ)`ω´(ヾ)
博主 你好我在开启TUN模式时 所有的节点都会time out是怎么回事啊
检查 service 的小地球是不是绿色的
博主 你好我在开启TUN模式时 所有的节点都会time out是怎么回事啊
博主 你好我在开启TUN模式时 所有的节点都会time out是怎么回事啊
博主 你好我在开启TUN模式时 所有的节点都会time out是怎么回事啊
谢谢博主的mixin, 在实际测试中发现 DNS 段应该也是要加引号的, 如 'nameserver'
测试中发现, 博主提供的unshift方法是合并, 我的需求是覆盖. 用push方法可以解决顺序颠倒的问题. 操作如下:
// 自定义 DIRECT / REJECT 条目
content['rules'] = [];
[
'你的D/R规则',
].forEach(rule => {
content.rules.push(rule);
});
中间省去若干...
// 还可以继续添加
customProxy.forEach(rule => {
content.rules.push(rule + proxyGroupName);
});
谢谢博主的mixin, 在实际测试中发现 DNS 段应该也是要加引号的, 如 'nameserver'
pip 报错需要打开clash 配置的Specify Protocol 选项
原来如此,感谢。
感谢,学到了。重做了系统,配置文件都在c盘都没了,,一切都得冲头配置的?
好耶,能帮到忙就好(
感谢,学到了。重做了系统,配置文件都在c盘都没了,,一切都得冲头配置的?
其实可以用 cfw 的脚本功能而不用 mixin,个人感觉写 js 还是舒服多了
其实可以用 cfw 的脚本功能而不用 mixin,个人感觉写 js 还是舒服多了
其实可以用 cfw 的脚本功能而不用 mixin,个人感觉写 js 还是舒服多了
太顶了