EasyConnect 纯净化:让流氓软件变得纯净无暇
前言
EasyConnect ,用过的人都对这个流氓软件深恶痛绝。
这里教大家一种方法,让它一秒”变乖“,这里就需要使用这个程序了
https://github.com/Hagb/docker-easyconnect.git
一键运行方式
让它在docker中运行,达到纯净效果,我的运行方式是放在服务器上,开放一个代理端口,方便连接使用,我这边使用的是Debian11系统,下面采用命令行方式完成操作:
docker run -d --restart=always --restart=on-failure --device /dev/net/tun --cap-add NET_ADMIN -ti -p 0.0.0.0:51080:1080 -p 127.0.0.1:58888:8888 -e SOCKS_USER=username -e SOCKS_PASSWD=password -e EC_VER=7.6.8 -e CLI_OPTS="-d serverip -u user -p pwd" hagb/docker-easyconnect:cli
这是一个使用 Docker 运行 EasyConnect VPN 客户端的命令,下面是各个参数的解释:
-d
:以后台模式运行容器。--restart=always
:容器退出时总是重启容器。--restart=on-failure
:容器退出时,如果退出状态码不为 0,则重启容器。--device /dev/net/tun
:将/dev/net/tun
设备挂载到容器中,以便容器可以使用 TUN/TAP 设备。--cap-add NET_ADMIN
:为容器添加NET_ADMIN
权限,以便容器可以进行网络配置。-ti
:分配一个伪终端并保持 STDIN 打开。-p 0.0.0.0:11080:1080
:将容器的1080
端口映射到主机的11080
端口,以便可以从外部访问容器的 SOCKS5 代理服务。-p 127.0.0.1:18888:8888
:将容器的8888
端口映射到主机的127.0.0.1:18888
端口,以便可以从本地访问容器的 EasyConnect VPN 客户端。-e SOCKS_USER=username
:设置 SOCKS5 代理服务的用户名为username
。-e SOCKS_PASSWD=password
:设置 SOCKS5 代理服务的密码为password
。-e EC_VER=7.6.8
:设置 EasyConnect VPN 客户端的版本为7.6.8
。-e CLI_OPTS="-d serverip -u user -p pwd"
:设置 EasyConnect VPN 客户端的命令行参数为-d serverip -u user -p pwd
,其中serverip
是 VPN 服务器的 IP 地址,user
是 VPN 用户名,pwd
是 VPN 密码。hagb/docker-easyconnect:cli
:使用hagb/docker-easyconnect
镜像的cli
标签启动容器。
在这里我开放了一个外网端口供本地电脑使用,如果是部署在本地可以该参数为-p 127.0.0.1:11080:1080
,如果在本地部署后需要访问docker的内部网络,可以使用下面方式:
$ ps aux |grep start.sh |grep _EC
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 238171 0.0 0.0 2388 752 pts/0 Ss+ 12:14 0:00 /bin/sh -c _EC_CLI=1 start.sh
sudo nsenter --net --target <PID>
# 将换成grep出来的第二列进程id --net可使用-n --target 可使用-t
sudo nsenter -n -t 238171
回车后始可使用内部网络 可通过ip route查看docker的路由表。
host上面安装的软件在这里都可以使用, 只是使用了docker的network namespace.
实操中碰到的问题:
# 不断的断开重连
auto login is disabled
user "0117105" login successfully!
svpn stop!
auto login is disabled
user "0117105" login successfully!
svpn stop!
尝试修改版本号,例如EC_VER=7.6.8
,在客户端显示版本号是7.6.8.10,而docker启动命令中只需要7.6.8就可以。
proxy代码连接测试:
import requests
proxies = {
'http': 'socks5://user:pwd@serverip:11080',
'https': 'socks5://user:pwd@serverip:11080'
}
with requests.get("http://decs.xx.xx.xxx:8888", proxies=proxies) as res:
print(res.status_code)
print(res.text)
了解更多
usage https://github.com/Hagb/docker-easyconnect/blob/master/doc/usage.md#easyconnect-web-登录
访问内部网络 https://github.com/Hagb/docker-easyconnect/issues/193