Clash Verge系列使用最佳实践
首先我们先明白一个概念,Clash Verge(开源)、Clash for Windows、Clash X Pro这一类图形化的软件,都是一个壳,用于对接核心的功能。
常见的核心有Clash Premium、Clash Meta(开源)
因为Clash Verge和他能切换的内核Clash Meta都是开源的,所以我们应该优先选这个搭配,下文中也会使用。
其次,作者如果不更新了,我们还能够继续使用他们吗?
当然可以,解释如下
- 就像你在使用一个收音机(Clash Verge),你不会因为收音机的制造商(作者) 倒闭了(停止更新),而立刻扔掉你的收音机
- 收音机的所有零件图纸是公开(开源) 的,你不用担心他可能植入一些不好的后台程序
- 收音机的外壳按钮(Clash Verge) ,是让我们更轻松的控制收音机里面的主板元件(Clash Meta核心) 去执行它们的任务,只要这个 外壳按钮(Clash Verge) 控制 收音机主板(Clash Meta核心) 的方式没有太大问题,那我们就可以用
- 外壳停止更新,意味着收音机外壳不会增加新的按钮
- 核心停止更新,意味着收音机主板不会更新功能,仅此而已
- 收音机能播放声音(开启魔法),是因为你输入了正确的FM频率(订阅链接)。只要电台(机场) 还在广播(服务),只要你的壳和核还在,就不影响你播放声音(开启魔法)
最后,我们要明确一点,下文中涉及到隐私保护的操作并不是绝对的安全,就像是想要知道你在家里做什么,可以在楼下垃圾桶翻你的扔的垃圾进行推测,可以望远镜监视你,可以把你家天花板炸了或者用大炮强行冲进来看。网络监控也一样,就看你在网络上的行为,值不值得人家用那些高阶手段了,总不能因为挖掘机一铲子能把防盗门破了我就不装防盗门了。
目前可用的开源Clash Verge客户端
Clash Verge虽然暂时是归档停止维护状态,但是现在有不少基于Clash Verge继续开发维护的客户端
太长不看版本
- 订阅转换(必做)
- 开TUN模式,关代理(可选)
- 关闭浏览器安全DNS地址,设置TUN模式的DNS地址(可选,如果操作了2,则此项必做)
- 关闭多宿主DNS解析,关闭浏览器QUIC(Windows可选)
- 设置本地中国IP数据库(可选)
解决订阅分流规则问题
拿到了订阅链接,第一步要做的应该就是订阅转换,将他的分流规则完善 (因为给你提供订阅的服务商,自带的分流规则往往就几百条,很不健全,很多人开着Clash但New Bing却用不了就是个很好的例子)
在线订阅转换不仅仅是将Shadowsocks、V2ray、Trojan 订阅链接转换为 Clash 、Stash、V2ray、Quantumult X、Surge 等软件使用的订阅格式,他还支持非常多的进阶操作,不过在本文仅以够用为目标,而不是把这个东西玩出花来。
在线订阅转换网站虽然好用,但也有一定的隐私风险,需要注意,建议会技术的朋友自己搭建在线订阅转换平台。
订阅转换网站
我搭建的订阅转换网站, 下文将使用该网站作为示例
需要操作的步骤
一般这样就已经可以比较完美的使用了,并且拥有我写的远程配置文件中的一些额外功能
判断是否成功套用了规则文件
拉取订阅后, 节点中应该会出现“🌿自动选择”、“🇭🇰香港自动”、“🇨🇳台湾自动”、“🇸🇬狮城自动”、“🇺🇸美国自动”、“🇯🇵日本自动”这几个自动节点。能看到这几个自动节点, 那你就成功在自己的订阅上套用了我的规则。
推荐在没有特殊需求的时候选择用这几个自动节点, 自动节点会帮你使用对应国家/地区节点中, 延迟最低的节点。
关于图中第4步的远程配置
这个远程配置是什么,能赋予你的订阅什么功能,你可以打开「远程配置」原文的链接,顶部有注释
解决DNS泄露问题
什么是 DNS 泄露其实并没有一个明确的定义,也不存在一个官方解释。大概就是说你访问YouTube等黑名单网站的时候,使用中国大陆的DNS服务器进行了解析,这可能导致隐私问题的。如果在 DNS Leak Test 、ipleak这种网站的列表中看到了中国国旗,就要意识到可能发生了DNS泄露。
如果真的泄露了有什么问题呢 ? 我也不知道可能导致什么,或许你可能收到下图这样的消息
我觉得还是尽量不要让他们知道这件事。虽然没有人知道具体的探测机制是什么,但很可能是从网络层面获取的。在一般的家庭网络拓扑中,wireshark可以看到什么内容,运营商就能看见什么内容,所以你使用114.114.114.114、223.5.5.5这样的DNS解析去访问了什么网站是很清晰的。
这就要衍生出第一个使用技巧——Clash开启TUN模式,关闭系统代理去使用
与普通的系统代理模式区别在于,TUN模式下Clash会创建一张虚拟网卡,从网络层面接管所有的网络流量。
普通的系统代理模式,是作为一个软件的权限去接管别的软件的网络,总有一些无法接管的应用,比如游戏,比如命令行。所以我们应该开启TUN模式,关闭系统代理,让网卡做这件事,而不是让软件做这件事
操作一 (开启TUN模式)
- 首先切换Clash Verge的内核,选开源的Clash Meta内核,然后重启整个Clash Verge确保生效
(Clash Meta在后期可能在不同的客户端名称有所不同, 如果看到内核名字是
Mihomo
版本号是1.x.x的也是Meta)- 安装服务并且开启Tun模式,按下方图中的数字序号顺序点击
- Win可以尝试在系统命令行(PowerShell)中执行
sc delete clash_verge_service
来删除之前的Clash Verge服务,这可能是你之前安装过Clash Verge,但是卸载的时候没有写在这服务模式,导致新的安装不上 - Mac/Linux请在设置的
Clash内核
点开齿轮图标⚙️,点"授权”
如果服务模式无法安装
但是当我们开启了TUN,再去查看泄露时,发现还是有中国服务器(Windows系统可能出现)。这是由于fake-ip模式将DNS请求同时发送给了本地的物理网卡和Clash虚拟网卡,我们希望只发送给Clash的网卡,因为Clash创建的虚拟网卡会按我们的要求做事,本地真实的网卡不会。
操作二 (调整组策略 Mac跳过)
要解决这个问题也很简单,问题出现的原因是Windows系统默认使用多宿主DNS解析,会使用所有的网卡发起请求,我们只需要在组策略(Windows家庭版无该功能)中关闭这个功能即可(Win+R,输入
gpedit.msc
点确定)。至此,我们解决了Clash在Windows下可能发生的DNS泄露问题。
但并不能保证ipleak检测不到,因为这个网站并不被墙。虽然我可以将ipleak加入规则中,但这样做就是掩耳盗铃。只要确保某些黑名单网站不被漏掉,不会收到上面那种短信,我认为就可以了。
操作三 (使用一个稳定的的DNS)
DNS这部分有人会教使用运营商的DNS,运营商的DNS只适合小白用户,因为他可能连反诈,所以建议使用国内大厂的,因为这个DNS只用来解析被规则命中的(中国大陆网址),一般都是没有被封锁的,所以用大厂的没什么问题。
- 设置浏览器中的“安全DNS”为关闭
- Chrome:
chrome://settings/security
- Edge:
edge://settings/privacy
【使用安全DNS】,关闭
找到【安全性】 -【使用安全的 DNS 指定如何查找网站的网络地址】,关闭
- 在Clash Verge的【配置】中,点右上角的新建,进行如下操作
- 右键点击新建的卡片,选择编辑文件,并输入以下内容,保存,右键点击卡片启用
这是用来在在匹配到规则中不需要代理的中国大陆网站时, 使用阿里/腾讯的DoH服务器进行解析, 防止一些不必要的反诈跳转和DNS绕路查询。比如访问一个baidu.com, 命中了规则, 发现不需要代理, 此时会并发向阿里和腾讯的DNS服务器进行请求, 使用最快的响应结果, 完成接下来的访问。
trustDnsList
中列出了一些中国大陆连通性还行并且无污染的DNS服务器, 如果你有更合适的可以追加替换数组中的DNS地址, 不要用谷歌的, 会被防火墙抢答导致网络无法连接。解决GEOIP, CN问题
目前市面上绝大多数的代理工具都依赖于 GeoIP2 数据库判断地址所属地。它们的规则结尾部分一般都会有一条类似
GEOIP, CN
,用来查询目的 IP 地址是否属于中国大陆,从而判断是否直连。这些代理工具通常使用的 GeoIP2 数据库是来自于 MaxMind 的 GeoLite2 免费数据库。这个数据库目前存在一下几个问题:
- 获取不便:从 2019 年 12 月 30 日起,必须注册后才能下载
- 数据量大:数据库庞大,包含全球的 IP 地址段,约 4 MB
- 准确度低:对中国大陆的 IP 地址判定不准,如:香港阿里云的 IP 被判定为新加坡、中国大陆等
庞大的数据量无可厚非,但是对于大多数中国大陆的用户来说,仅需要去判断 IP 的地理位置是否属于中国大陆境内,其他国家的 IP 一律代理。过多的数据量会增加载入时间,降低查询效率。
而最致命的问题就是准确度低,这会导致代理工具查询后得到错误,做出错误的分流判定,最终导致用户体验不佳,如:网站无法访问、访问缓慢等问题。
我们使用GeoIP2-CN这个开源项目来解决这个问题
- 下载对应的数据库,你会下载到一个名为Country.mmdb的文件
- 右键托盘中的Clash Verge图标,【打开目录】-【应用目录】
- 退出Clash Verge,将刚才下载的文件,放入刚刚打开的目录进行文件替换
- 重新打开Clash Verge
我希望xxx.com不要走代理, 如何做?
- 点击左侧「订阅」菜单, 点击右上角的「新建」按钮
- 类型选择「Merge」, 名称自己起一个, 点保存
- 右键点击刚才新建出来的Merge, 点击「编辑文件」, 在
prepend-rules:
后面进行添加 (Clash的策略是从上往下读取规则, 读取到了就不再往下找, 所以要使用prepend, 在前面插入规则)
- 格式如下, 自行灵活组合即可添加你想要的规则, 写时注意yaml文件的缩进
(不要照搬下面的规则, 只是写法演示, 演示内容写的策略很不合理! )
上面只写了常用的, 还有更多规则类型详见Clash文档的对应章节 或 虚空终端Docs
- 写完之后右键你新建出来的Merge, 点击「启用」, 再点击右上角的「重新激活订阅」按钮来刷新配置
至此,就完成了我认为的Clash的最佳实践配置。
远程配置的维护我会持续进行,希望文章的内容能对你有所帮助。
评论