Clash Verge系列使用最佳实践

type
status
date
slug
summary
tags
category
icon
password

关于一些客户端作者停止更新

这些客户端停止更新了, 对我们的使用是否有影响呢? 想要知道这个问题的答案, 首先我们先明白一个概念,Clash Verge(开源)、Clash for Windows、Clash X Pro这一类图形化的软件,都是一个壳,用于对接核心的功能, 停止更新的只是这个
常见的核心有Clash Premium、Clash Meta(开源)
因为Clash Verge和他能切换的内核Clash Meta都是开源的,所以我们应该优先选这个搭配,下文中也会使用。
那我们还能够继续使用他们吗?
当然可以,解释如下
  1. 就像你在使用一个收音机(Clash Verge),你不会因为收音机的制造商(作者) 倒闭了(停止更新),而立刻扔掉你的收音机
  1. 收音机的所有零件图纸是公开(开源) 的,你不用担心他可能植入一些不好的后台程序
  1. 收音机的外壳按钮(Clash Verge) ,是让我们更轻松的控制收音机里面的主板元件(Clash Meta核心) 去执行它们的任务,只要这个 外壳按钮(Clash Verge) 控制 收音机主板(Clash Meta核心) 的方式没有太大问题,那我们就可以用
  1. 外壳停止更新,意味着收音机外壳不会增加新的按钮
  1. 核心停止更新,意味着收音机主板不会更新功能,仅此而已
  1. 收音机能播放声音(开启魔法),是因为你输入了正确的FM频率(订阅链接)。只要电台(机场) 还在广播(服务),只要你的壳和核还在,就不影响你播放声音(开启魔法)
最后,我们要明确一点,下文中涉及到隐私保护的操作并不是绝对的安全,就像是想要知道你在家里做什么,可以在楼下垃圾桶翻你的扔的垃圾进行推测,可以望远镜监视你,可以把你家天花板炸了或者用大炮强行冲进来看。网络监控也一样,就看你在网络上的行为,值不值得人家用那些高阶手段了,总不能因为挖掘机一铲子能把防盗门破了我就不装防盗门了。

目前可用的开源Clash Verge客户端

Clash Verge虽然暂时是归档停止维护状态,但是现在有不少基于Clash Verge继续开发维护的客户端

太长不看版本

  1. 订阅转换(必做)
  1. 开TUN模式,关代理(可选)
  1. 关闭浏览器安全DNS地址,设置TUN模式的DNS地址(可选,如果操作了2,则此项必做)
  1. 关闭多宿主DNS解析,关闭浏览器QUIC(Windows可选)
  1. 设置本地中国IP数据库(可选)

解决订阅分流规则问题

拿到了订阅链接,第一步要做的应该就是订阅转换,将他的分流规则完善 (因为给你提供订阅的服务商,自带的分流规则往往就几百条,很不健全,很多人开着Clash但New Bing却用不了就是个很好的例子)
在线订阅转换不仅仅是将Shadowsocks、V2ray、Trojan 订阅链接转换为 Clash 、Stash、V2ray、Quantumult X、Surge 等软件使用的订阅格式,他还支持非常多的进阶操作,不过在本文仅以够用为目标,而不是把这个东西玩出花来。
在线订阅转换网站虽然好用,但也有一定的隐私风险,需要注意,建议会技术的朋友自己搭建在线订阅转换平台。

订阅转换网站

我搭建的订阅转换网站, 下文将使用该网站作为示例

需要操作的步骤

notion image
一般这样就已经可以比较完美的使用了,并且拥有我写的远程配置文件中的一些额外功能

判断是否成功套用了规则文件

拉取订阅后, 节点中应该会出现“🌿自动选择”、“🇭🇰香港自动”、“🇨🇳台湾自动”、“🇸🇬狮城自动”、“🇺🇸美国自动”、“🇯🇵日本自动”这几个自动节点。能看到这几个自动节点, 那你就成功在自己的订阅上套用了我的规则。
推荐在没有特殊需求的时候选择用这几个自动节点, 自动节点会帮你使用对应国家/地区节点中, 延迟最低的节点。

关于远程配置

这个远程配置是什么,能赋予你的订阅什么功能,你可以打开「远程配置」原文的链接,顶部有注释

解决DNS泄露问题

什么是 DNS 泄露其实并没有一个明确的定义,也不存在一个官方解释。大概就是说你访问YouTube等黑名单网站的时候,使用中国大陆的DNS服务器进行了解析,这可能导致隐私问题的。如果在 DNS Leak Test 、ipleak这种网站的列表中看到了中国国旗,就要意识到可能发生了DNS泄露。
如果真的泄露了有什么问题呢 ? 我也不知道可能导致什么,或许你可能收到下图这样的消息
notion image
 
notion image
 
我觉得还是尽量不要让他们知道这件事。虽然没有人知道具体的探测机制是什么,但很可能是从网络层面获取的。在一般的家庭网络拓扑中,wireshark可以看到什么内容,运营商就能看见什么内容,所以你使用114.114.114.114、223.5.5.5这样的DNS解析去访问了什么网站是很清晰的。
这就要衍生出第一个使用技巧——Clash开启TUN模式,关闭系统代理去使用
与普通的系统代理模式区别在于,TUN模式下Clash会创建一张虚拟网卡,从网络层面接管所有的网络流量。
普通的系统代理模式,是作为一个软件的权限去接管别的软件的网络,总有一些无法接管的应用,比如游戏,比如命令行。所以我们应该开启TUN模式,关闭系统代理,让网卡做这件事,而不是让软件做这件事

操作一 (开启TUN模式)

  1. 首先切换Clash Verge的内核,选开源的Clash Meta内核,然后重启整个Clash Verge确保生效
    1. (Clash Meta在后期可能在不同的客户端名称有所不同, 如果看到内核名字是Mihomo 版本号是1.x.x的也是Meta)
      notion image
  1. 安装服务并且开启Tun模式,按下方图中的数字序号顺序点击
    1. notion image
      如果服务模式无法安装
      • 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 点确定)。
notion image
至此,我们解决了Clash在Windows下可能发生的DNS泄露问题(主要靠分流规则起作用)。
但并不能保证ipleak检测不到,因为这个网站并不被墙。虽然我可以将ipleak加入规则中,但这样做就是掩耳盗铃。只要确保某些黑名单网站不被漏掉,不会收到上面那种短信,我认为就可以了。

操作三 (使用一个稳定的的DNS)

DNS这部分有人会教使用运营商的DNS,运营商的DNS只适合小白用户,因为他可能连反诈,所以建议使用国内大厂的。
  1. 关闭浏览器的QUIC, 中国大陆的isp是限速udp的, 所以导致QUIC这个优秀的协议, 到了中国大陆的网络下成了个负面增益效果。
    1. about://flags/#enable-quic 设置为Disabled (点下方弹出的重启浏览器生效)
  1. 关闭浏览器中的“安全DNS”
      • Chrome: chrome://settings/security
        • 【使用安全DNS】(新版Chrome中叫做【对您访问的网站的名称进行加密】),关闭
      • Edge: edge://settings/privacy
        • 找到【安全性】 -【使用安全的 DNS 指定如何查找网站的网络地址】,关闭
  1. 在Clash Verge的【配置】中,点右上角的新建,进行如下操作
    1. notion image
  1. 右键点击新建的卡片,选择编辑文件,并输入以下内容,保存,右键点击卡片启用
    1. notion image
      notion image
      图片仅提供界面参考, 实际内容以上方代码块为准
      notion image
       
启用后再次点击按钮, 确保正确的应用了设置 (这里的任何代码变动, 都需要点击这个按钮手动刷新运行时的配置)
notion image
这段代码的作用是
  • 使用阿里和DNSPod(腾讯的DNS)的DoT来解析节点、DNS服务器
  • 使用无污染的DNS服务器解析其他网站
  • 使用非营利组织的DoT解析Notion网站
  • tun模式堆栈使用自适应模式
  • 更换延迟计算方式,去除握手等额外延迟
  • 开启TCP并发的支持
  • 开启域名嗅探, 准确还原域名, 进行域名分流
  • 设置geodata的下载源为国内加速下载源
如果你完全按照上面的步骤设置好了,再看看DNS Leak Test 、ipleak ,你会发现大部分的解析结果都是来自国外的Cloudflare和Google的DNS, 这是节点服务器不管拿到了你传过去的真ip还是假ip地址, 他都会再去请求一次Cloudflare/Google的DNS服务, 确保解析的正确性。但是重要的是没有中国大陆的DNS服务器了,如果还是有,那你应该往当前设备的更上层寻找问题所在,比如路由器的设置等。

解决GEOIP, CN问题

目前市面上绝大多数的代理工具都依赖于 GeoIP2 数据库判断地址所属地。它们的规则结尾部分一般都会有一条类似 GEOIP, CN,用来查询目的 IP 地址是否属于中国大陆,从而判断是否直连。
这些代理工具通常使用的 GeoIP2 数据库是来自于 MaxMind 的 GeoLite2 免费数据库。这个数据库目前存在一下几个问题:
  • 获取不便:从 2019 年 12 月 30 日起,必须注册后才能下载
  • 数据量大:数据库庞大,包含全球的 IP 地址段,约 10 MB
  • 准确度低:对中国大陆的 IP 地址判定不准,如:香港阿里云的 IP 被判定为新加坡、中国大陆等。
庞大的数据量对于大多数中国大陆的用户来说是没有意义的,因为只仅需要去判断 IP 的地理位置是否属于中国大陆境内,其他国家的 IP 一律代理/直连。过多的数据量会增加载入时间,降低查询效率。
我们在之前创建的Script中已经包含了下载更精简合适中国大陆的IP数据库链接, 现在只需要手动操作下载和替换即可。
  1. 点击Clash Verge Rev的设置菜单, 找到「更新GeoData」, 点击进行更新, 他会在后台进行下载和本地的文件替换, 通常在10秒内完成。
  1. 验证是否下载完成: 右键托盘中的Clash Verge图标,【打开目录】-【应用目录】, 找到geoip.dat文件, 查看其文件体积, 如果是几百KB则成功, 如果是好几MB则未成功或未下载完成(几百KB下载要不了多久, 太久没有效果可能需要你使用下方的操作去重启Clash客户端重试)。
  1. 下载完成后右键托盘中的Clash Verge图标,【更多】-【重启应用】确保数据库被正确应用

我希望xxx.com不要走代理, 如何做?

  1. 点击左侧「订阅」菜单, 点击右上角的「新建」按钮
  1. 类型选择「Merge」, 名称自己起一个, 点保存
  1. 右键点击刚才新建出来的Merge, 点击「编辑文件」, 在prepend-rules: 后面进行添加 (Clash的策略是从上往下读取规则, 读取到了就不再往下找, 所以要使用prepend, 在前面插入规则)
  1. 格式如下, 自行灵活组合即可添加你想要的规则, 写时注意yaml文件的缩进
    1. (不要照搬下面的规则, 只是写法演示, 演示内容写的策略很不合理! )
      上面只写了常用的, 还有更多规则类型详见Clash文档的对应章节虚空终端Docs
  1. 写完之后右键你新建出来的Merge, 点击「启用」, 再点击右上角的「重新激活订阅」按钮来刷新配置
    1. notion image

至此,就完成了我认为的Clash的最佳实践配置。
远程配置的维护我会持续进行,希望文章的内容能对你有所帮助。
 
html标签的lang属性写法规避笔记陷阱 [译]
前端技术
AI技术
拙见
工具应用
其他知识
编程知识