在Linux下用过EasyConnect的小伙伴应该知道,EasyConnect在Linux环境下相当难用。笔者之前在Ubuntu20.04下安装EasyConnect打开后闪退。
        闪退问题主要是系统库太新了,而EasyConnect还没升级依赖库。网上有解决方案,但是打开后还是有一定概率闪退。而且连接成功后,莫名其妙导致电脑只能访问EasyConnect内网环境,外网无法访问。
        最近,更换到Manjaro 21后,通过yay安装软件真香,但是只有EasyConnect安装失败,于是便探索出一个方法。

EasyConnect In Docker

使用容器化技术,将EasyConnect封印在Docker中运行。

该项目Github主页如下,docker-easyconnect

电脑安装Docker后,通过如下命令即可一键运行docker-easyconnect镜像

1
docker run --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

将上述命令中的vpnaddress,username,password三处替换为自己的信息后,运行上述命令,将自动下载相关镜像并运行。可能需要添加sudo使用管理员权限执行
运行成功,登陆成功后,Docker容器的内部端口1080即socks5代理端口,内部端口8888即http代理端口。
注意: -p参数后的ip地址之后的两个端口前者为暴露在外的端口号,后者为Docker容器内部的端口号,如-p 127.0.0.1:51080:1080则将主机的51080端口映射到Docker容器内部的1080端口,主机端通过51080端口作为socks5代理服务的端口。

内网网页访问

配好后,浏览器中可以通过SwitchyOmega扩展切换代理到EasyConnect,具体配置方案未完待续

Remmina远程桌面配置

remmina的配置文件在以下路径中

1
~/.local/share/remmina/ 

修改你的remmina配置文件,添加以下三行后,该远程桌面配置即可自动走配置的socks5代理(可能需要删除#的注释行)

1
2
3
4
5
6
# 代理类型为socks5
proxy_type=socks5
# 代理服务器地址(本机地址)
proxy_hostname=localhost
# 代理端口填自己的
proxy_port=51080

当你本身已处于内网环境时,无需使用代理访问远程桌面,每次修改配置文件太麻烦,故可以看出上图的配置文件中本人对每个配置文件创建了一个proxy后缀的副本,即可实现优雅的内网与外网两种环境条件下的RDP访问。

如下图,当外网环境时,通过启动docker-easyconnect创建的容器开启socks5代理

链接proxy的那一项即可成功访问RDP

内网环境时,直接打开普通的RDP链接即可,可谓是相当优雅了。