使用Apache Guacamole实现远程连接

最近,需要接触有关远程连接电脑的东西,然后就想除了teamviewer之类的软件,现在的技术应该有新的媒介进行远程控制了吧,果不其然,Apache有一个web远程连接项目鳄梨仔Guacamole。一看到这个我就迫不及待的部署测试了一下,摁!太香了,分享给大家一起使用。
第一步,安装Docker

因为前面的文章有写过,就不赘述了,点这个连接就可以了。
https://blog.csdn.net/justdoit366/article/details/95936720

第二步,使用MySQL初始化Guacamole身份验证

前面已经安装了docker了,因此,首先我们得把需要的镜像从仓库抓取下来。
1.拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server

2.当把三个镜像都下载下来后,创建数据库初始化脚本以创建用于验证身份的数据表:
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

3.启动数据库容器
docker run --name mysqltest -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_ONETIME_PASSWORD=yes -d mysql/mysql-server
在这里插入图片描述
4.第一次使用MySQL的话,root用户生成一次性密码,可在日志中查看:
docker logs mysqltest使用Apache Guacamole实现远程连接_第1张图片
上面划红线的就是一次性密码了,这个很重要,后面要用到,就是下面这行,复制出来,你可以
输入docker logs mysqltest|grep GENERATED
这个命令就能把一次密码列在最下面,切记,加粗部分是密码,别整个复制了。。
[Entrypoint] GENERATED ROOT PASSWORD: 9OLEcH4ndUzizit4SMymeP8uxc3

5.重命名并将initdb.sql移动到MySQL容器中,后续就能通过这个生成表了:
docker cp initdb.sql mysqltest:/guac_db.sql

6.在MySQL的Docker容器中打开bash终端:
docker exec -it mysqltest bash

7.使用一次性密码登录。如下所示:
mysql -u root -p
在这里插入图片描述
把刚才强调的一次性密码,复制到里面去即可成功登录,登录后界面
使用Apache Guacamole实现远程连接_第2张图片
8.由于在重新设定root用户密码之前,终端不会接受任何命令。因此,首先是要重新设置root用户密码

方法:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
示例:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
这样,root账户密码就改成123456啦
在这里插入图片描述
9.创建数据库,以及创建一个新的数据库和用户

CREATE DATABASE guacamole_db;
CREATE USER ‘guacamole_user’@’%’ IDENTIFIED BY ‘guacamole_user_password’;
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO ‘guacamole_user’@’%’;
FLUSH PRIVILEGES;
使用Apache Guacamole实现远程连接_第3张图片
最后,输入quit退出即可

10.在bash终端中,使用初始化脚本为新数据库创建数据表:

cat guac_db.sql | mysql -u root -p guacamole_db
需要输入密码,只需要输入刚才设置的root账户的新密码就可以了
在这里插入图片描述
到这里,数据库的操作其实都完成了,但是我们还是小心为上。再验证数据表是否已成功添加。如果guacamole数据库中不存在新建的表,请再次确认之前的步骤均已正确执行。

连接数据库
mysql -u root -p
选择数据库
USE guacamole_db;
查看所有表
SHOW TABLES;
如果正确无误的话,你看到的应该和我的差不多。
使用Apache Guacamole实现远程连接_第4张图片
到这里,全部完毕,如果不一致,就再一遍,一致的同学
输入exit退出容器,进入下一步吧

第三步,在浏览器中访问Guacamole

1.在Docker中启动guacd:
docker run --name myguacd -d guacamole/guacd

2.连接容器,以便Guacamole验证存储在MySQL数据库中的凭证:
docker run --name myguacamole --link myguacd:guacd --link mysqltest:mysql -e MYSQL_DATABASE=‘guacamole_db’ -e MYSQL_USER=‘guacamole_user’ -e MYSQL_PASSWORD=‘guacamole_user_password’ -d -p 0.0.0.0:8080:8080 guacamole/guacamole

因为需要三个容器联动,保险起见,我们还是再检查一下
可通过以下命令查看所有正在运行的Docker容器:
docker ps
在这里插入图片描述
可以看到myguacamole、myguacd和mysqltest等三个容器都在后台安稳的跑着

3.请在浏览器中访问localhost:8080/guacamole/。默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。当然,如果你不是配置在本地,那你就把localhost换成对应的ip地址即可。
使用Apache Guacamole实现远程连接_第5张图片
第四步,配置远程控制终端信息
嘻嘻,搞了这么久,配了三个容器,整了一堆,只是看到界面,但是还没有享受到成果,满足吗?
现在就是前面的辛苦的收成时刻了。
1.登录后,看到一个空空如也的页面,懵了吧
在这里插入图片描述
留意一下右上角,是不是有刚才登录的账户名,转机就在这里。

2.点击用户名,看到展开的菜单了吧,点击Settings
使用Apache Guacamole实现远程连接_第6张图片
3.跳转到一个新界面,点击Connections
使用Apache Guacamole实现远程连接_第7张图片
4.点击New Connection
使用Apache Guacamole实现远程连接_第8张图片
5.对照我在图中输入的项,填写打算远程控制的机器信息,填写完毕拉到最下面点save即可
使用Apache Guacamole实现远程连接_第9张图片
6.再次点击用户名,然后点击Home,回到首页刚才新增的终端就显示出来了。
使用Apache Guacamole实现远程连接_第10张图片
7.点击该终端,输入密码,即可成功登录,当然,为了方便,你也可以在上面这个页面把密码也配置了,那样就不需要再输入密码了。记得做好防护措施噢!

是不是太棒了,使用之后感觉美滋滋,通过浏览器可以访问控制Linux,windows等操作系统,真的是太爽了。后面有空的话,还会出一个有关这个的原理分析,不过最近想写的太多,哈哈,大家一起沉迷在新奇的技术中啊。

你可能感兴趣的:(技术分享)