Surge用户的Windows生存之路,我花了一个月做了一个让自己满意的软件



尴尬

在这之前,Windows上我一直用着官方的Shadowsocks客户端,用法非常简单,就是从服务提供商直接下载配置文件然后覆盖到软件目录下就能直接使用了。

但是使用过程却发现了几个较为影响体验的问题,例如:

  • 不能远程更新节点信息,只能重新下载配置文件
  • 如果节点列表太长,在菜单中选择起来会非常麻烦
  • 不够灵活,部分情况下需要来回切换节点

探索

为了解决上面的问题,我决定自己写一些小工具,来优化自己使用Shadowsocks客户端的体验。

想到的方法是编写个一个脚本,从服务提供商的Surge托管里获取Shadowsocks节点信息,拼装成配置文件,这样可以避免每次需要登录网站再下载文件覆盖的繁琐操作了。

同时考虑到节点列表可能会很长,这让在Shadowsocks任务栏选择时会非常麻烦,所以脚本还加入了过滤,可以筛选出来常用的节点让列表更短更容易选择。

所以这个基于Nodejs的工具就诞生了:shadowsocks-update

但它不是今天的主角……

发现

偶然的机会知道了Dreamacro开发的Clash,这是一个用GO语言编写的规则分流多平台代理工具

Clash的两个非常重要的特点:

  1. 使用类Surge配置(规则和策略组)
  2. 支持多种协议(Shadowsocks、V2Ray以及Socks5)

这一切看起来都很美好,但是,Clash目前并没有Windows平台的GUI,只能通过提供的Restful API进行节点切换,策略选择等操作,使用上比较不方便。

既然这样,不如自己做一个好了,名字就叫Clash for Windows吧。

打造

经过接近一个月的开发,17次的更新迭代之后,Clash for Windows已经基本实现了预期的功能。

Proxies界面Proxies界面

通过GUI可以快速的切换分流状态以及给对应的策略组选择节点。

下面着重介绍两个比较重要的功能:策略组远程更新

策略组

接触过Surge或者Quantumult的人都应该知道策略组的作用,根据不同的分流规则采取不同的策略,而不像Shadowsocks客户端只能使用单个节点处理流量。

为了让用户更加简单的配置合适的策略组,Clash for Windows提供了一个强大的UI:

Manage界面Manage界面

界面分为左右两个部分,分别可以滚动,可以使用拖动操作进行节点排序,分配至策略组等。

远程更新

上面提到了,我们希望可以通过实现自动更新节点信息而不必进入服务提供商的网站,所以这个功能也被加入到Clash for Windows里了:

Remote界面Remote界面

部分的服务提供商已经开始适配Clash格式(与Surge有一定差别)的配置文件,所以可以直接通过其提供的URL进行直接更新。

而对于部分不支持Clash配置但支持Surge托管的提供商,我开放了一个对应的API接口将Surge托管配置转换为Clash格式的配置文件,这或许可以帮助你快速使用Clash for Windows。如有需要,可以添加我的Telegram群组了解。

配合API,你其实已经可以在Windows和iOS以及Mac平台上使用同一份Surge配置文件,更极客的玩法,还可以配合我开发的JSBox脚本,打造属于自己的配置文件。

后话

目前的Clash for Windows,已经成为我个人在Windows平台上主要使用的代理客户端,尽管目前内存占用(约80M)以及安装包大小(约45M)仍然是Shadowsocks客户端的数倍甚至十多倍。

如果你感兴趣并且不缺乏基本的学习能力,欢迎下载尝试或加入我的Telegram群组参与讨论。

发表评论