赞
踩
在公司内网访问过程中,需使用VPN。但在下载并尝试使用EasyConnect时,发现应用打开后无反应。即便通过网页登录,应用也会不断重启,严重影响了电脑的正常使用。考虑到EasyConnect的口碑及可能存在的安全风险,我决定采用一种更安全的方式——使用docker来部署EasyConnect。在网上找到一个使用docker部署EasyConnect的方案,尽管在搭建过程中遇到了不少问题,但最终还是成功解决了。以下是我的经验分享,希望对遇到类似问题的朋友有所帮助。
首先,安装Docker,然后下载并运行docker-easyconnect的镜像。运行成功后,将提供socks5和http代理服务及网关,供宿主机连接使用。接着,通过代理插件或Clash代理,即可实现访问内网地址。
注意,纯命令行版本仅支持以下登录方式:用户名+密码、硬件特征码。
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 -e EC_VER=7.6.3 -e CLI_OPTS="-d vpnaddress -u username -p password" hagb/docker-easyconnect:cli
其中 -e EC_VER=7.6.7 表示使用 7.6.7 版本的 EasyConnect,请根据实际情况修改版本号(选择 7.6.7 或 7.6.3,详见 EasyConnect 版本选择);
安装Docker并运行;
在终端输入:
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=xxxx -e URLWIN=1 -e IPTABLES_LEGACY=1 -v $HOME/.ecdata:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:21080:1080 -p 127.0.0.1:28888:8888 -p 127.0.0.1:54530:54530 -p 127.0.0.1:54631:54631 hagb/docker-easyconnect:7.6.7
末尾 EasyConnect 版本号 7.6.7 请根据实际情况修改;arm64 和 mips64el 架构需要加入 -e DISABLE_PKG_VERSION_XML=1 参数;
这是一个使用 Docker 运行 EasyConnect VPN 客户端的命令,下面是各个参数的解释:
项目 | Value |
---|---|
docker run | 这是 Docker 的基本命令,用于运行一个新的容器。 |
–rm | 运行容器后,容器执行完毕会自动删除。调试完成后,这个参数后期要删除。 |
–device /dev/net/tun | 让容器可以直接使用宿主机上的 /dev/net/tun 设备。这在需要在容器中建立网络隧道时是必须的。 |
–cap-add NET_ADMIN | 是不可少的。 因为 VPN 要创建 tun 网络接口。为容器添加NET_ADMIN能力,这允许容器管理网络设置,例如设置IP地址、路由等。 |
-ti | 这是两个参数 -t 和 -i 的组合。参数 -t 分配一个伪终端或终端,并且 -i 让容器的标准输入保持开启。 |
-e PASSWORD=xxxx | 设置容器内的环境变量 PASSWORD 的值为 xxxx。使用VNC时要输入这个密码,可以自行设置自己常用的密码。 |
-e URLWIN=1 | 默认为空,此时当 VPN 前端想要调用浏览器时,不会弹窗,若该变量设为任何非空值,则会弹出一个包含链接的对话框供用户复制。 |
-e IPTABLES_LEGACY=1 - | 默认为空。设为非空值时强制要求 iptables-legacy 。使用旧式的 iptables 命令,主要目的是和 WSL 保持兼容。在部分发行版的 WSL 版本上,缺少了这个环境变量会使得 VPN 不能正常运行。(非必要不选) |
-v $HOME/.ecdata:/root | 挂载宿主机的 $HOME/.ecdata 目录到容器的 /root 目录。这样,容器可以访问宿主机上的这个目录,并且任何在容器中对这个目录的修改都会反映到宿主机上。 |
-p 127.0.0.1:5901:5901 | 5901 端口开启 VNC 服务器,VNC连接使用这个接口。第一个端口是宿主机的端口,如果被占用改一个没被占用的端口即可。 |
-p 127.0.0.1:21080:1080 | Socks5 代理端口。Clash和 Proxy SwitchyOmega走Socks5代理时要配置的端口。 |
-p 127.0.0.1:28888:8888 | HTTP 代理端口; |
-p 127.0.0.1:54530:54530 | 将容器的 54530 (EasyConnect)端口映射到宿主机,之后便可以在宿主机上打开 VPN 服务器的网页进行登录。 |
-p 127.0.0.1:54631:54631 | 将容器的 54631 (aTrust) 端口映射到宿主机,之后便可以在宿主机上打开 VPN 服务器的网页进行登录。 |
hagb/docker-easyconnect:7.6.7 | EasyConnect 版本号 7.6.7 请根据实际情况修改; |
docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e URLWIN=1 -v $HOME/.ecdata:/root -p 127.0.0.1:21080:1080 -p 127.0.0.1:28888:8888 -p 127.0.0.1:54530:54530 hagb/docker-easyconnect:7.6.7
会有报错,忽略就好,不影响使用。
https://127.0.0.1:54530
并选择忽略证书错误。docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD=xxxx -e URLWIN=1 -e IPTABLES_LEGACY=1 -v $HOME/.ecdata:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:21080:1080 -p 127.0.0.1:28888:8888 hagb/docker-easyconnect:7.6.7
参照1.1,这种只适用用户名密码登录的客户端。
Proxy SwitchyOmega是一个Chrome的插件,如果使用代理只是为了浏览网页,建议使用这种方式。
docker run -d --restart=always --restart=on-failure --device /dev/net/tun --cap-add NET_ADMIN -ti -e URLWIN=1 -v $HOME/.ecdata:/root -p 127.0.0.1:21080:1080 -p 127.0.0.1:28888:8888 -p 127.0.0.1:54530:54530 hagb/docker-easyconnect:7.6.7
-d:以后台模式运行容器。
–restart=always:容器退出时总是重启容器。
–restart=on-failure:容器退出时,如果退出状态码不为 0,则重启容器。
总结一下,纯净化安装EasyConnect一共三步,第一步是安装docker-easyconnect,第二步是登录vpn,第三步是使用代理软件进行代理转发。
安装docker-easyconnect时,需要判断是否要使用图形化界面进行登录,如果需要参考2.1、2.2章节。
登录vpn有三种方式,只需要用户名和密码就能登录的直接使用命令行进行登录。如果需要图形验证码,就需要使用web登录或者VNC Viewer登录,两种二选一即可。
代理转发可以使用浏览器插件或者clash。浏览器插件的优点是简单,无需安装新软件。缺点是如果连接数据库,git等资源时无法代理,这时就需要使用clash。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。