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

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

部署教程

安装docker

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

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

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

docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server
docker image ls
[root@k8master1 ~]# docker image ls
REPOSITORY                                                                     TAG       IMAGE ID       CREATED         SIZE
guacamole/guacamole                                                            latest    36d1e135bac7   4 hours ago     496MB
guacamole/guacd                                                                latest    fca0b87cc016   27 hours ago    149MB
mysql/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 bash
mysql -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 ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS                 PORTS                                                        NAMES
7b9b079cd966   guacamole/guacamole   "/opt/guacamole/bin/…"   2 hours ago   Up 2 hours             0.0.0.0:9090->8080/tcp                                       myguacamole
22376ea97d95   guacamole/guacd       "/bin/sh -c '/opt/gu…"   2 hours ago   Up 2 hours (healthy)   4822/tcp                                                     myguacd
b5fa8ca1002b   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://www.mzph.cn/news/112660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法(十):动态规划与贪心算法

参考引用 Hello 算法 Github:hello-algo 1. 动态规划算法 动态规划将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率 问题:给定一个共有 n 阶的楼梯,你每步可以上 1 阶或…

【王道代码】【2.3链表】d1

关键字: 递归删除x;删除所有x;递归反向输出;删除最小结点(2组指针);原地逆置;使递增有序

2008-2021年上市公司实体企业金融化程度测算数据(原始数据+stata代码)

2008-2021年上市公司实体企业金融化程度测算(原始数据stata代码) 1、时间:2008-2021年 2、指标:股票代码、年份、交易性金融资产、衍生金融资产、发放贷款及垫款净额、可供出售金融资产净额、持有至到期投资净额、长期债权投资净…

github 终端克隆操作,以及对 https/ssh 的理解

前言 最近瞎搞 github 的一些配置,结果搞得有一段时间克隆不了仓库。不过经历了这次风波后,我对 github 的一些原理有了更清楚的了解。所以想稍微写一小篇文章总结输出一下,也欢迎有疑问的读者与博主进一步交流,我的理解还是有限…

我的发布.

<!DOCTYPE html> <html><head><title>我的发布</title><meta http-equiv"content-type" content"text/html; charsetutf-8"/><meta name"apple-mobile-web-app-capable" content"yes"/><…

[1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

测评介绍 本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽&#xff0c;后端使用GO开发&#xff0c;前端使用VUE的Element-Plus作为UI框架&#xff0c;整个面板的管理都是基于docker的&#xff0c;想法很先进。官方还提供了视频的使用教程&…

【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析

【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解…

mysql 指定库对所有表加tenant_id

mysql 指定库里所有表加tenant_id 由于业务所需&#xff0c;区分公司主体&#xff0c;tenant_id油然而生 但库里表至少几百个&#xff0c;不可能一个一个去加&#xff0c;时间成本&#xff0c;人力成本都很大&#xff0c;所以写一个存储过程函数&#xff0c;对其进行一次性操作…

leetcode:2678. 老人的数目(python3解法)

难度&#xff1a;简单 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息&#xff0c;信息用长度为 15 的字符串表示&#xff0c;表示方式如下&#xff1a; 前十个字符是乘客的手机号码。接下来的一个字符是乘客的性别。接下来两个字符是乘客的年…

leetcode:217. 存在重复元素(先排序再比较邻位)

一、题目&#xff1a; 函数原型&#xff1a; bool containsDuplicate(int* nums, int numsSize) 参数分析&#xff1a; nums是传入的数组 numsSize是传入数组的元素个数 二、思路&#xff1a; 根据题意&#xff0c;判断数组中是否存在出现两次以上的元素。可以先将数组排序&…

基于混沌博弈优化的BP神经网络(分类应用) - 附代码

基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.混沌博弈优化BP神经网络3.1 BP神经网络参数设置3.2 混沌博弈算法应用 4.测试结果…

【汇编语言特别篇】DOSBox及常用汇编工具的详细安装教程

文章目录 &#x1f4cb;前言一. ⛳️dosbox的介绍、下载和安装1.1 &#x1f514;dosbos简介1.2 &#x1f514;dosbox的下载1.2.1 &#x1f47b;方式一&#xff1a;官网下载(推荐)1.2.2 &#x1f47b;方式二&#xff1a;网盘安装包 1.3 &#x1f514;dosbox的安装1.4 &#x1f5…

CSS 滚动驱动动画 timeline-scope

timeline-scope 语法兼容性 timeline-scope 看到 scope 就知道这个属性是和范围有关, 没错, timeline-scope 就是用来修改一个具名时间线(named animation timeline)的范围. 我们介绍过的两种时间线 scroll progress timeline 和 view progress timeline, 使用这两种时间线(通…

TCP/IP网络分层模型

TCP/IP当初的设计者真的是非常聪明&#xff0c;创造性地提出了“分层”的概念&#xff0c;把复杂的网络通信划分出多个层次&#xff0c;再给每一个层次分配不同的职责&#xff0c;层次内只专心做自己的事情就好&#xff0c;用“分而治之”的思想把一个“大麻烦”拆分成了数个“…

Linux篇 五、Ubuntu与Linux板卡建立NFS服务

Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 四、Linux修改用户名 文章目录 Linux系列文章目录前言一、连接到局域网互ping测试 二、安装NFS服务配置NFS更新exports配置三、板卡安装NFS客户端四、板卡临时…

LINUX | hexdump以16进制查看文件内容

LINUX | hexdump以16进制查看文件内容 时间&#xff1a;2023-10-20 文章目录 LINUX | hexdump以16进制查看文件内容1.参考2.示例1.以ASCII字符显示文件中字符2.以16进制和相应的ASCII字符显示文件里的字符3.只显示文件中前n个字符4.以偏移量开始格式输出 1.参考 1.Linux命令–h…

前端 js 经典:递归

1. 什么是递归 函数内部调用自己&#xff0c;这就是递归 2. 为什么用递归 对数据进行处理&#xff0c;优化处理流程可以用递归 3. 构成递归三要素&#xff08;必须&#xff09; 3.1 参数递归逻辑&#xff1a;如下例&#xff0c;demo(n-1)对比 demo(n)参数递归逻辑为 n-1 …

【SA8295P 源码分析 (四)】32 - QNX Ethernet Phy_Switch 驱动初始化 源码分析

【SA8295P 源码分析】32 - QNX Ethernet Phy_Switch 驱动初始化 源码分析 一、使用现有的库配置 emac 和 phy_switch功能二、phy_switch 驱动初始化流程分析2.1 emac_mdio_register() 函数分析2.2 emac_mdio_callback() 函数分析系列文章汇总见:《【SA8295P 源码分析 (四)】网…

请问嵌入式或迁移学习要学什么?

请问嵌入式或迁移学习要学什么&#xff1f; 学习嵌入式和迁移学习是一个很好的方向&#xff0c;尤其是在军I领域。以下是一些你可以提前学习的基本 知识和步骤: 嵌入式系统:最近很多小伙伴找我&#xff0c;说想要一些嵌入式资料&#xff0c;然后我根据自己从业十年经验&#…

泛微项目二次开发

一、开发入门 1.1、项目开发背景介绍 泛微产品客户基数大,由于每个客户对于自身的OA系统有不同的定位,所以需要对产品有不同的实现,二次开发是为了能够尽可能保持产品主题功能不变的情况下,实现客户的定制化需求。 E9 总体采用前后端分离架构,前端采用React + Mobx + Wea…