我们学校要使用深信服家的 EasyConnect 才能在外面连内网,我又经常需要连学校的电脑和数据库,在使用了一段时间 EasyConnect 之后,我发现这玩意儿不仅流氓,而且难用。流氓在于不用他的时候进程关不掉,卸载还卸载不干净,也不知道他到底要获取什么数据,关于深信服的黑料网上一搜一大堆。难用在于我一开他,虽然是能连上学校内网了,但是我们学校校园网非常差劲,速度本身就不快,还经常连不上 GitHub,用了他之后,我在路由器上配置的代理也没有用,所以我心想能不能抛弃这个流氓客户端,就在不久前,我终于找到了一套解决方案。
这一套解决方案的原理大致就是使用 Docker 运行 EasyConnect 并暴露出一个 sock5 端口作为代理,然后用配置 Clash 的代理规则,按照一定的规则进行转发。一开始是在知乎的一篇文章:M1 Mac 用不了深信服 easyconnet? 用 docker+clash封印它中发现了这个方法clashdll缺失!,然而他的情况和我稍微有点不一样,他没有连接远程桌面等需求,并且写的也比较简略,所以我就萌发了写一篇保姆级流程介绍的想法。
不同的平台安装 Docker 有些不一样,Windows 略微麻烦一些,请按照官网的教程(英文):Windows,MacOS,或者菜鸟教程(中文):Windows,MacOS一步步进行安装,更推荐官网。
在 Clash For Windows 的 Github 上的Release页面选择带有win标识或者后缀为 .exe 的版本点击进行下载,最好选择后缀名为.7z的压缩包,下载下来后不用安装,解压即可使用。
同样是在 Clash For Windows 的 Github 上的Release页面选择相应的版本点击进行下载,不过要选择带有 mac 标识版本,如果你是 M1 芯片的 Macclashdll缺失,请选择带有arm64标识的版本。
如果你用的 EasyConnect需要图形界面登录的话,就需要安装 VNC Viewer,否则可以跳过这一步,如果不知道可以先不装,到后面用 Docker 运行 EasyConnect 的时候提示你不能在命令行界面完成再返回这一步安装。
VNC Viewer 的安装非常简单,到官网的下载页面,选择相应的版本下载,然后一路下一步就完成了。
因为需要编辑一些配置文件,所以需要用到文本编辑器,推荐使用VS Code,不使用记事本的原因是它不带高亮,没有单词拼写提示也不会自动调整格式,可能会导致你有一些缩进、拼写和标点等方面的错误比较难发现。
首先不要忘了确定你的 Docker 是正在运行的,使用 Windows 的同学应该可以在右下角看到一只顶着集装箱的小鲸鱼的图标。打开一个命令行/终端,根据你需不需要图形界面输入不同的命令。
其中-e EC_VER=7.6.7表示使用7.6.7版本的 EasyConnect,请根据实际情况修改版本号,根据提示输入服务器地址、登陆凭据。
经@余秋水这位朋友的提醒,当你的 5901 或者 1080 端口被其他服务占用时,可以通过如下命令更改我们上面用 docker 运行的 EasyConnect 的端口(以纯命令行版举例,另一个也是一样的):
这两段的 15901 和 10180 各位可以随意修改成自己没有被占用的端口。
点击 OK 后,双击我们刚刚创建好的链接,输入密码 XXXX,就可以进行连接了,进去之后是熟悉的界面,输入地址,用户名和密码之后就可以关掉了。
顺便说一句,在 Docker 中运行的 EasyConnect 都不用输验证码,就更加方便了,由于这个项目本身是会记住你输入的服务器地址的,所以以后使用的时候只需要点一下登录按钮就可以了。
进行到这一步,就会有一个 socks5 代理跑在你电脑的1080 端口了,接下来就是配置 Clash,在我们需要的时候进行转发。
这一篇只讲如何让你在需要的时候使用 EasyConnect 的 VPN 服务,如果你还需要配置其他代理,可以移步官方文档,不过话说回来,如果你需要配置其他代理,你的机场应该有详细的教程。
首先运行 Clash,点击左侧导航栏的 Profiles,你会看到一个默认的 config.yaml,如果你有其他配置文件也可以编辑其他配置文件。点击你想编辑的配置文件右边的形如 的按钮,意思就是在文本编辑器中编辑配置文件,在最后增加:
【注意】这里填写的222.192.6.0/24是指只有访问222.192.6.xxx的流量才会走上面配置的那个代理,需要根据你的实际情况进行更改。当然,你如果是编辑你自己的配置文件,需要在原来的proxies和rules下新增,而不能再新增这两个属性。
到这一步,在 Clash 的 General 页面,将 System Proxy 打开,你就已经可以访问学校内网的网页了,但是不可以使用远程桌面等功能,如果需要使用这些功能,还需要进一步配置。
浏览器之类的应用都是使用系统代理的,一些非系统代理应用,可以通过设置被 CFW 接管。总之,配置 TUN 模式之后,我们的需求就可以实现了,启动 TUN 模式需要进行如下操作(MacOS 用户跳过前两步):
5. 返回 general 页面开启 Mixin 即可,之后点击 connections 会发现所有连接都是 TUN 模式,这时候我们就完成了所有配置
同样也是@余秋水同学的提醒,clash开启系统代理之后,应用程序需做排除。相关规则可以参考:
这里注意,其中的 port 要对应你前面配置 docker 配置的端口,需要对应起来。
当你关掉命令行/终端窗口,或者重启电脑,想再次启动 Docker 时,我们只需要启动相应的容器,并且在 VNC Viewer 中点击登录就可以(如果你不使用图形界面的话只需要启动容器)。
启动容器的操作就不用再去打上面创建容器时的那一串命令了,因为那一串命令的意思是创建容器、下载镜像、启动并进入容器,我们已经创建好了容器,以后只需要启动就行了。所以,我们先要知道我们有哪些容器,然后启动相应的容器就可以。
你应该会得到类似的输出,如果你是第一次使用 Docker,应该只有一个容器
可以看到,我的第一个容器就是正在使用的,当我重启之后又想开启它的时候,只需要输入
就可以了,其中81f是我要启动的容器的ID也就是第一列的值mac怎么使用clash,这个值很长,通常你只需要输入前几位就可以,或者你也可以记住容器的name,使用
来启动,容器的名字是可以在创建的时候指定的,也可以通过docker rename命令修改。
如果你是 Windows 用户,双击右下角 Docker 的图标,你会看到一个可视化的管理界面,点击左侧导航栏的Containers / Apps也可以看到所有的容器,并且可以通过可视化的方式对容器进行操作。
在开启容器之后,如果你需要图形界面操作就来到 VNC Viewer 中点击登录,并且开启 Clash 的 System Proxy 就完成了。
前面说道,EasyConnect 的流氓之处之一就是非常难卸载,但是我还是根据网上的资料和我自己操作的经验总结出一套方法,这一套方法可能略显复杂,可能有多余的操作,不过按照这样操作是可以将 EasyConnect 完全卸载干净的。
首先,找到 EasyConnect 的安装目录,双击运行他的卸载程序,等他运行完之后你会发现,这个目录并没有被完全删掉,还是有很多文件,这时候我们执行下列步骤:
全选 Shift + Delete,如果遇到不给删的就跳过,这时候还是会剩下很多文件。
断网重启电脑,来到安装目录下,把所有文件夹都改名,随便改成什么,再次重启
全选刚刚改过名的文件夹 Shift + Delete,如果这时候还删不了就把文件夹剪切到别的地方再删除
重启电脑,管理员权限打开命令行(如果你没有常用的命令行工具可以 Win + X 选择
最后两步重置 winsock 非常重要,如果不执行很可能会出现各种客户端无法连接网络的情况。