部署Guacamole远程桌面网关服务
什么是Guacamole?
Apache Guacamole 是无客户端远程桌面网关,是基于 HTML5 的远程桌面控制框架。它支持标准协议,例如 VNC,RDP和SSH。
前言
使用 guacamole 的主要原因是可以从任何地方远程访问一个或多个桌面,而无需安装客户端,这给我们带来了很大的便利,几乎可以在带有网络浏览器的任何设备上使用 guacamole,而且代理或防火墙的存在不会阻止 guacamole 的使用。
关于 guacamole 更多的介绍,可以到这里看看:https://github.com/TelDragon/guacamole
安装
根据 apache guacamole 官方文档,官方的 docker 涉及到3个独立的容器,分别是 guacamole/guacd
、guacamole/guacamol
、mysql
或者 postgresql
,这种遵循单一原则的分离更有利于升级、维护,但是我们只是临时的测试环境,即便是使用也是偶尔和数量很少的用户,所以我个人更喜欢用单容器,有点类似虚拟机,在一个容器中跑多个应用,就算是挂了,重启容器就行了。
基于上述的原因,我们今天选择的镜像是 oznu/guacamole
,这是一个多合一的镜像,包含了 guacd server
,guacamole web client
和 postgres database
,支持 x64 和 ARM 平台。
之前我们已经安装过 portainer 来管理 docker,所以我们今天尝试用 portainer 来安装 guacamole。
其中
① 是容器的名称
② 是镜像的名称
③ 前面是主机的端口,不冲突就可,后面是容器的端口
④ 是重启的策略
⑤ 是部署按钮
点击⑤开始部署,部署的时间取决于网络
运行
在浏览器中输入 http://群晖IP:3080
,就可以看到登录界面
缺省的用户名和密码都是 guacadmin
右上角 guacadmin
–> 设置
–> 连接
SSH 连接
选择 SSH
协议
只要输入主机IP和端口即可,我这里输入了群晖的IP
输入账号、密码就能成功看到界面
如果连不上,检查下是否勾选了 启用 SSH 功能
,以及 端口
是否正确
除了命令,还支持常用的 tab 补全和 vi,这不就是个 web 版的 ssh 吗?
RDP 连接
windows主机新建用于远程登录的用户
远程桌面中 允许远程连接到此计算机
,选择用户
选择添加
文本框中输入用户 RDP
之后,点检查名称,会自动补全,确定就可以了
自动返回上一个界面,确定即可
回到 guacamole
的 连接
设置界面,这次选择 RDP
协议
同样只要输入主机IP和端口即可
选择用户
输入密码
登录成功后
从操作看还是比较流畅的
主机切换
在后台首页能看到登录过的主机
可以通过点击主机界面的右下角在不同的主机间进行切换
其他
从协议看,还支持 VNC
、Telnet
、Kubernetes
,有兴趣的可以自行研究。
对我而言,支持 SSH
和 RDP
已经足够了, TeamViewer
和 向日葵
都可以卸了。
参考文档
Apache Guacamole™
地址:https://guacamole.apache.org/oznu/docker-guacamole: A self-contained guacamole docker container for x64 and ARM. Remotely connect over SSH, RDP or VNC using HTML5.
地址:https://github.com/oznu/docker-guacamoleUsing Portainer to Deploy Guacamole Docker- Web-based Remote Access Gateway - Info Security Memo
地址:https://www.51sec.org/2019/08/03/using-portainer-to-deploy-guacamole-docker-web-based-remote-access-gateway/Guacamole桌面虚拟化介绍和安装使用 - ❤️ 我洋洋 - OSCHINA - 中文开源技术交流社区
地址:https://my.oschina.net/zeyuphoenix/blog/530780Apache Guacamole多个漏洞分析 - 安全客,安全资讯平台
地址:https://www.anquanke.com/post/id/209721