玩转 Docker,重塑 EasyConnect
EasyConnect 是流氓软件吗?最近需要访问内网平台,但是必须安装 EasyConnect 才能进入,在此之前我对网上说 EasyConnect 是毒瘤软件不太在意。但是自从安装 EasyConnect 后,我的电脑出现了一些问题,下面一一列举:
问题一:Vmware 每次都需要重置网卡才能在本机连上Linux虚拟机
问题二:启动 CSGO/CS2 后游戏自动关闭,进程被杀(堡垒之夜正常🤣)
问题三:悄悄安装 Sangfor CA 根证书,且证书被删除后会被重新安装。(该证书即使删除,也会由驻留进程再次添加。)
问题四:后台服务常驻,这个软件为什么要常驻?
开始了漫长的问题排查,最后锁定在 EasyConnect 这个软件身上,这里也如有需要还是用 Docker 运行 EasyConnect,或者直接在虚拟机内安装,不要在本机安装。感觉它一直在背后偷偷摸摸地监控电脑
ps:管理员权限常驻进程,意味着这些进程可以读取和写入任何东西;安装根证书,意味着可以直接进行中间人攻击,随意篡改数据。
二、卸载
发现问题后我用 IObitUninstaller 卸载,但卸载后仍有两个进程,路径如下:
1 | C:\Program Files (x86)\Sangfor\SSL\SangforPW\ |
这两个进程必须删除,否则会重新安装已删除的 Sangfor 证书。
建议:卸载后,使用 Everything 搜索
Sangfor
关键字,找到上述路径并全部删除,当然其中两个进程需在任务管理器结束再删。或使用第三方工具强制删除,我依然推荐 IObitUninstaller。
然后用管理员权限打开 Windows 终端,输入:sc delete SangforPWEx
删除服务
最后两个 .dll 文件,改后缀名后重启即可删除。
三、删除证书
完全卸载后,还需手动删除两个证书:
Windows 搜索管理用户证书
,在受信任的根证书颁发机构
中删除 Sangfor 证书;在受信任的发布者
中删除 Sangfor 证书。
删除后必须重启检查,避免证书被再次自动安装!
四、解决方法
在这里我发现了一个大佬的项目:https://github.com/Hagb/docker-easyconnect
这个项目将 EasyConnect 运行在 Docker 容器内,并暴露出一个 Socks5 端口作为代理端口。我们可以在宿主机上使用该 Socks5 代理,当需要访问内网时,通过代理即可。
这样,EasyConnect 就被隔离到一个受控的容器环境中,无需再担心它的潜在风险。下面是具体操作步骤。
我们将使用 Clash 作为代理工具(Netch、Proxifier 等支持 Socks5 的工具也可)。
五、安装 WSL2 & Docker 、VNC Viewer
5.1、安装 WSL2 & Docker
关于安装WSL2,本博客之前有专门的一篇文章这里我就不重复安装方法了,建议查看下面路径安装WSL及Docker:
5.2、安装 VNC Viewer
这里我们需要图形界面登录 EasyConnect,所以需要安装 VNC Viewer,(不要图形界面就不用安装 VNC Viewer)
我们到官网的下载,选择相应的版本下载安装即可。
VNC Viewer 下载地址:https://www.realvnc.com/en/connect/download/viewer/
六、Docker 运行 EasyConnect
这里我就用图形界面版 EasyConnect 进行演示:
打开 Windows 终端输入:
1 | docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=xxxx -e URLWIN=1 -v $HOME/.ecdata:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.7 |
注意:末尾 EasyConnect 版本号
7.6.7
请根据实际情况修改;arm64 和 mips64el 架构需要加入-e DISABLE_PKG_VERSION_XML=1
参数;5901
和1080
端口如果你有其他服务在占用需要换成其他的端口号;
这里我改成15901和11080 端口,密码为1234:
1 | docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=1234 -e URLWIN=1 -v $HOME/.ecdata:/root -p 127.0.0.1:15901:5901 -p 127.0.0.1:11080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.7 |
然后打开 VNC Viewer,点击左上角的 File -> New connection,或者快捷键 Ctrl + N,新建一个链接,在弹出的对话框中的 VNC Server 中填入 127.0.0.1:5901
,Name 随意。
点击 OK 后,双击创建的链接,输入密码 1234 进行连接。进入熟悉的界面,输入地址、用户名和密码后即可关闭。
Docker 中运行的 EasyConnect 后续不需输入手机验证码,使用更加方便。因为这个项目本身会记住输入的服务器地址,后续用时只需点击登录即可。
至此,11080 端口上会运行一个 socks5 代理,我们可以在需要时通过 Clash 进行转发。
八、使用 Clash
现在我们已经有了一个 11080 的 sosks5,但是需要工具代理,这里我就用 Clash
首先运行 Clash,点击左侧导航栏的 Profiles,你会看到一个默认的 config.yaml,如果你有其他配置文件也可以编辑其他配置文件。点击你想编辑的配置文件右边的形如 < >
的按钮,在最后增加:
1 | mixed-port: 7890 |
注意:这里的 rules,我填写的是域名,指的是:只有访问
xxxx-it.com
后缀的域名和devops-new.dc.xxxx-sc.com
域名才会走上面配置的那个 socks5 代理,这里需要根据你的实际情况进行更改。(Clash支持 指定IP等等都可以)当然,你如果是编辑你自己的配置文件,需要在原来的
proxies
和rules
下新增,而不能再新增这两个属性。
到这一步,在 Clash 的 General 页面,将 System Proxy 打开,你就已经可以访问对应内网的网页了,我这里云盘直接使用也是打不开,在设置里面添加对应的代理即可
但是不可以使用远程桌面等功能,如果需要使用这些功能,还需要进一步配置。