当前位置:首页 » 《资源分享》 » 正文

使用guacamole进行WEB远程桌面连接

7 人参与  2024年04月29日 13:29  分类 : 《资源分享》  评论

点击全文阅读


Apache Guacamole 是一个无客户端的远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH,甚至还支持k8s、telnet连接。它可以在任何有网络的地方连接上你的服务器和Windows主机。可以同时连接多个终端,并且能够无缝切换。本文采用docker进行部署

部署教程

安装docker

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

yum install docker-cesystemctl start docker.service systemctl enable docker.service 

拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:

docker pull guacamole/guacamoledocker pull guacamole/guacddocker pull mysql/mysql-server
docker image ls[root@k8master1 ~]# docker image lsREPOSITORY                                                                     TAG       IMAGE ID       CREATED         SIZEguacamole/guacamole                                                            latest    36d1e135bac7   4 hours ago     496MBguacamole/guacd                                                                latest    fca0b87cc016   27 hours ago    149MBmysql/mysql-server                                                             latest    1d9c2219ff69   9 months ago    496MB

部署mysql

运行docker容器

docker run -p 3306:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server

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

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

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

docker cp initdb.sql mysqltest:/guac_db.sql

在MySQL的Docker容器中打开bash终端:

docker exec -it mysqltest bash

使用密码登录。如下所示:

mysql -u root -p123456

创建数据库,以及创建一个新的数据库和用户

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;

最后,输入quit退出即可
在bash终端中,使用初始化脚本为新数据库创建数据表:

cat guac_db.sql | mysql -u root -p guacamole_db

到这里,数据库的操作其实都完成了,但是我们还是小心为上。再验证数据表是否已成功添加。如果guacamole数据库中不存在新建的表,请再次确认之前的步骤均已正确执行。

连接数据库

docker exec -it mysqltest bashmysql -u root -p123456

选择数据库

USE guacamole_db;

查看所有表

SHOW TABLES;

如果正确无误的话,你看到的应该和我的差不多。

mysql> SHOW TABLES;+---------------------------------------+| Tables_in_guacamole_db                |+---------------------------------------+| guacamole_connection                  || guacamole_connection_attribute        || guacamole_connection_group            || guacamole_connection_group_attribute  || guacamole_connection_group_permission || guacamole_connection_history          || guacamole_connection_parameter        || guacamole_connection_permission       || guacamole_entity                      || guacamole_sharing_profile             || guacamole_sharing_profile_attribute   || guacamole_sharing_profile_parameter   || guacamole_sharing_profile_permission  || guacamole_system_permission           || guacamole_user                        || guacamole_user_attribute              || guacamole_user_group                  || guacamole_user_group_attribute        || guacamole_user_group_member           || guacamole_user_group_permission       || guacamole_user_history                || guacamole_user_password_history       || guacamole_user_permission             |+---------------------------------------+23 rows in set (0.00 sec)

在Docker中启动guacd:

docker run --name myguacd -d guacamole/guacd

连接容器,以便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:9090:8080 guacamole/guacamole

因为需要三个容器联动,保险起见,我们还是再检查一下
可通过以下命令查看所有正在运行的Docker容器:

[root@k8master1 ~]# docker psCONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS                 PORTS                                                        NAMES7b9b079cd966   guacamole/guacamole   "/opt/guacamole/bin/…"   2 hours ago   Up 2 hours             0.0.0.0:9090->8080/tcp                                       myguacamole22376ea97d95   guacamole/guacd       "/bin/sh -c '/opt/gu…"   2 hours ago   Up 2 hours (healthy)   4822/tcp                                                     myguacdb5fa8ca1002b   mysql/mysql-server    "/entrypoint.sh mysq…"   3 hours ago   Up 3 hours (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060-33061/tcp   mysqltest[root@k8master1 ~]#

可以看到myguacamole、myguacd和mysqltest等三个容器在后台运行中

请在浏览器中访问localhost:8080/guacamole/

默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。当然,如果你不是配置在本地,那你就把localhost换成对应的ip地址即可。
在这里插入图片描述
成功登录后,选择settings->connections->new connection
在这里插入图片描述
新建一个连接,采用ssh协议
在这里插入图片描述
在这里插入图片描述
配置完成后,选择返回home页面
在这里插入图片描述
这是就可以通过浏览器访问需要访问的主机了
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/101898.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1