Apache Guacamole 是一个无客户端的远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH,甚至还支持k8s、telnet连接。它可以在任何有网络的地方连接上你的服务器和Windows主机。

界面截图:

可以同时连接多个终端,并且能够无缝切换。

部署教程:

首先需要安装Docker,使用官方一键安装脚本部署,已安装的直接忽略

1
2
3
4
5
国内服务器:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国外服务器:
curl -fsSL https://get.docker.com | bash -s docker

拉取所需Docker镜像

主程序:

1
2
3
docker pull guacamole/guacamole

docker pull guacamole/guacd

数据库:官方支持PostgreSQL和MySQL两种,这里使用常用的MySQL

1
docker pull mysql

镜像拉取完成后可以检查一下

1
2
3
docker images
或者
docker imsge ls

准备就绪后开始运行容器

MySQL

运行MySQL容器

1
docker run  -d --name mysql -e MYSQL_ROOT_PASSWORD=<Password> mysql

注意:Guacamole程序不会自动初始化数据库,运行MySQL之后需要手动初始化数据库,而Guacamole提供了数据库文件,只需要生成导入就可以了。

生成数据库文件

1
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

这一步完成后当前目录下会生成一个initdb.sql的文件,将它复制到MySQL容器内

1
docker cp initdb.sql mysql:/

复制完成之后进入MySQL容器初始化数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
进入MySQL容器:
docker exec -it mysql bash

在容器内运行:
mysql -uroot -p
输入密码进入数据库

创建一个数据库:
mysql > create database somename;

选择数据库:
mysql > use somename;

导入数据:
mysql > source /initdb.sql

至此,完成了数据库初始化

Guacd

Guacd是Apache Guacamole网络应用程序使用的本地服务器端代理

运行Guacd:

1
docker run --name guacd -d guacamole/guacd

Guacdmole

运行Guacdmole:

1
2
3
4
5
6
docker run --name guacamole --link guacd:guacd \
--link mysql:mysql \
-e MYSQL_DATABASE=somename \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=Password \
-d -p 8080:8080 guacamole/guacamole

运行起来后大概初始化几秒钟,在浏览器打开 http://ip:8080/guacamole

默认账号密码均为:guacadmin