在Mac Arm中利用Docker封印EasyConnect
/ 6 min read
Table of Contents
1. 前言
前一阵子在使用关闭代理时,国内很多网站都突然无法访问,一直以为是代理污染DNS,浏览器配置等问题,尝试了很多解决方法没有用。最后发现是因为EasyConnect一直挂在后台的原因,关闭EasyConnect后就一切正常了。但是我平时工作需要使用EasyConnect进行远程ssh等,所以不能关闭EasyConnect,寻找方案的过程中发现了这篇帖子介绍了使用Docker封印EasyConnect的方法,过程中间遇到一些坑最后得以解决,此贴记录解决方案。
其实在查找资料过程中,发现Easyconnect这个软件的过去劣迹斑斑,自动启动且无法退出的root后台应用EasyMonitor和ECAgentProxy,且必须安装深信服自己的根证书才能使用。属于是系统和流量行为它想获取就可以获取 (转发给你的同学看看 如何应对与卸载删除它?有什么替代方案?_哔哩哔哩_bilibili) (EasyConnect 你想干甚?—— 干掉 macOS 版 EasyConnect 的流氓行为 | Lufs’s Blog)。
2. 准备
- Easyconnect (用以查看使用的VPN版本, 后续会提供删除方案)
环境
- MacOS 15.1
- Mac M1 Pro
- Docker, Client&Server version == 27.3.1
3. 安装docker-easyconnect
在docker-easyconnect项目 (docker-easyconnect/docker-easyconnect), 可以看到其提供有两个版本:纯命令行版和图形界面版。纯命令版本我尝试过很多相关issues和文章方案,均无法运行成功,所以下面均图形界面版的操作。
- 在官网下载安装VNC Viewer软件,并安装打开。
- 启动Easyconnect应用,并且登陆VPN内网,这时在登陆的软件界面提留,点击屏幕左上角的关于Easyconnect可以查看当前的版本,我这里的是
7.6.7版本。docker-easyconnect的图形化版本现支持7.6.3和7.6.7两个Easyconnect版本,可在其Github页面查看。 - 运行以下命令下载并运行docker-easyconnect容器。这里的
PASSWORD=114514是后面VNC Viewer需要的密码,127.0.0.1:21080:1080是Socks5代理端口,127.0.0.1:5901:5901是VNC Viewer端口,-ti参数会开启docker的交互式使用场景,关闭终端后会退出容器,将其修改为-d会将容器运行与后台模式,这种模式可以退出终端而不影响容器运行。更多的参数解释可以参考 (纯净化安装EasyConnect:macOS Sonoma使用docker安装EasyConnect-CSDN博客)。
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti \-e PASSWORD=114514 \-e URLWIN=1 \-e DISABLE_PKG_VERSION_XML=1 \-v $HOME/.ecdata:/root \-p 127.0.0.1:5901:5901 \-p 127.0.0.1:1080:1080 \-p 127.0.0.1:1888:8888 \-e CLIP_TEXT=https://vpn.hitsz.edu.cn/ \hagb/docker-easyconnect:7.6.7- 打开VNC Viewer,输入
127.0.0.1:5901进入后输入密码114514,即可看到Easyconnect的界面,输入账号密码登陆即可。
VNC Viewer登陆
4. 测试docker-easyconnect
登陆后保持Docker容器和VNC运行,然后测试是否能成功通过Easyconnect连接内网。我这里使用ssh通过socks5代理连接内网主机 (让你的SSH通过HTTP代理或者SOCKS5代理),需把user_name和host_ip替换为实际的用户名和主机IP。
ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" user_name@host_ip也可以使用curl命令通过socks5代理获取内网网页测试,如:
curl --socks5 <proxy_host>:<proxy_port> http://example.com5. 后续设置
5.1 配置ssh代理
可以把配置写入ssh config中:
echo -e "Host S1 HostName host_ip User user_name ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p" >> ~/.ssh/config后面想再连接内网主机时,只需输入ssh S1即可,其会自动使用socks5代理连接相关主机。
5.2 卸载Easyconnect
上述配置与测试都完成后,便可以卸载系统应用里面的Easyconnect了,Easyconnect的完全卸载方案可以参考 1234。
5.3 其他代理
如果想通过Easyconnect访问网页等,可以通过安装chrome插件:Proxy SwitchyOmega进行代理,参考5。也可以通过代理软件等进行代理,参考6。