Guacamole简介及centos7下搭建教程

简介

Guacamole是一款开源的远程桌面框架,它允许用户通过Web浏览器远程访问计算机资源。

官网地址:Apache Guacamole™

官方文档:Installing Guacamole natively — Apache Guacamole Manual v1.5.3

架构

组件描述
客户端浏览器用户通过支持HTML5和WebSocket的浏览器访问Guacamole远程桌面服务。用户可以在浏览器中输入服务器的地址和认证信息,以建立与远程桌面的连接。
Guacamole服务器Guacamole服务器是一个中间层,它接受来自客户端浏览器的连接请求,并将其转发到目标远程计算机。它负责处理连接的建立、维护和关闭,并提供与远程桌面通信的功能。
远程桌面协议Guacamole支持多种远程桌面协议,如VNC、RDP和SSH。这些协议允许Guacamole与不同类型的远程计算机进行通信。Guacamole服务器将客户端浏览器发送的协议请求转换为相应的远程桌面协议,并将协议响应返回给浏览器。
远程计算机远程计算机是用户希望远程访问的计算机。它可以是运行不同操作系统的服务器、虚拟机或个人电脑。Guacamole通过远程桌面协议与远程计算机进行通信,将远程计算机的桌面内容传输到客户端浏览器,并将用户的输入传递给远程计算机。

功能

特点描述
远程访问通过Web浏览器远程访问计算机资源。
跨平台可以在不同操作系统上使用,如Windows、Linux等。
HTML5支持使用HTML5技术,无需客户端插件或软件。
安全性支持SSL加密,保护远程访问的安全性。
管理界面提供管理界面,方便配置和管理Guacamole。
扩展性可以通过插件和扩展来增加功能和定制化需求。

优点

特点描述
无需安装无需在本地安装客户端软件,只需通过Web浏览器即可访问远程计算机资源。
跨平台跨平台支持使得在不同操作系统上都可以方便地使用。
HTML5支持使用HTML5技术,无需额外的插件或软件,提供了更好的跨浏览器兼容性。
安全性支持SSL加密,提供安全的远程访问解决方案。
管理界面管理界面简化了配置和管理过程。

缺点

特点描述
网络连接需要稳定的网络连接,否则可能会影响远程访问的质量和稳定性。
技术要求在服务器端需要安装和配置Guacamole,对于一些用户来说可能需要一定的技术知识和操作能力。
浏览器要求需要使用支持HTML5和WebSocket的浏览器才能正常访问远程桌面资源。
安全性需要正确配置SSL证书和安全设置,以确保远程访问的安全性。
学习适应对于不熟悉管理界面操作和配置的用户来说,可能需要一些学习和适应的时间。
高级功能对于一些高级功能和定制化需求,可能需要进行开发和集成扩展,可能需要额外的配置和工作量。

centos7 docker 下Guacamole 服务配置

1: 安装docker

2: 安装mysql镜像

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

3: 导出guacamole的建表文件

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

4: 将文件复制到mysql的容器中

docker cp initdb.sql some-mysql:/initdb.sql

5:在mysql的容器中打开bash:

docker exec -it some-mysql bash

6:登陆到mysql,建立数据库guacamole_db

mysql > CREATE DATABASE guacamole_db;

7: 导入数据initdb.sql到数据库guacamole_db中:

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

8:验证表信息,登陆到mysql

mysql> USE guacamole_db;

mysql> SHOW TABLES;

9:退出mysql容器

10: 启动guacd容器:

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

11: 启动gacamole容器,并且连接guacd和mysql容器

docker run --name some-guacamole --link some-guacd:guacd --link some-mysql:mysql -e MYSQL_DATABASE='guacamole_db' -e MYSQL_USER='root' -e MYSQL_PASSWORD='123456' -d -p 192.168.0.192:8080:8080 guacamole/guacamole

12:通过网址 http://192.168.0.192:8080/guacamole/ 访问

默认账户和密码都是 guacadmin。记得打开8080端口,每次修改防火墙,记得重启docker(没细研究,也可能不需要)

13 :创建rdp,就填这几个地方就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182842.shtml

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

相关文章

数据结构 / day02作业

1. 有若干个学校人员的信息,包括学生和教师。 其中学生的数据包括:姓名、性别、职业s/S、分数。 教师的数据包括:姓名、性别、职业t/T、职务。 1,定义指针指向堆区内存 2.循环输入 3.计算老师的个数 4.计算学生的平均值 5.循环输出 6释放堆区空间 #inc…

Jquery中的bind(),live(),delegate(),on()绑定事件方式

bind() 简要描述 bind()向匹配元素添加一个或多个事件处理器。 使用方式 $(selector).bind(event,data,function) event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等; 单事件处理:例如 $(selector).bi…

不同类型的开源许可证

不同类型的开源许可证 什么是开源许可证 最简单的解释是,开源许可证是计算机软件和其他产品的许可证,允许在定义的条款和条件下使用、修改或共享源代码、蓝图或设计。开源并不意味着该软件可以根据需要使用、复制、修改和分发。根据开源许可证的类型&a…

gcp, loki, honeybadger 查看日志 语句

gcp, loki, honeybadger 查看日志 语句 GCP resource.type“cloudsql_database” AND logName:“projects/ebay-mag/logs/cloudsql.googleapis.com%2Fpostgres.log” AND ( textPayload:“[2823409]”) log_name“projects/ebay-mag/logs/cloudsql.googleapis.com%2Fpostgres…

代码随想录算法训练营第四十九天 | 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 121. 买卖股票的最佳时机 题目链接:121. 买卖股票的最佳时机 比较好想到的是贪心算法,贪心选择价格更低的日子买入,价格更高的日子卖出。 class Solution { public:int maxProfit(vec…

ROS命令行工具

1、roscore 在使用ROS之前,首先要启动roscore进程。当我们在终端中运行这个命令时,系统就会启动ROS Master、参数服务器和日志节点。在这之后,就可以运行任何其他的ROS程序/节点了。所以可以在一个终端窗口运行roscore指令&#…

【unity实战】基于权重的随机事件(附项目源码)

文章目录 前言开始一、简单的使用二、完善各种事件1. 完善生成金币事件2. 完善生成敌人事件敌人3. 完善生成药水事件 最终效果参考源码完结 前言 随机功能和UnityEvent前面其实我们都已经做过了,但是随机UnityEvent事件要怎么使用呢?这里就来举一个例子…

【Linux驱动开发】编译Android12源码+

编译Android12源码 1. 简单描述2. 准备资料3. 编译Android12 1. 简单描述 基于讯为电子rk3568教程 2. 准备资料 rk_android12.0_sdk_20220720.tar.gz 3. 编译Android12 解压 tar -vxf rk_android12.0_sdk_20220720.tar.gz设置屏幕配置 rk_android12.0_sdk/kernel-4.19/ar…

关于src别名的配置之tsconfig.json配置

tsconfig.json {"compilerOptions": {"baseUrl": "./", // 解析非相对模块的基地址,默认是当前目录"paths": { //路径映射,相对于baseUrl"/*": ["src/*"] }} } ① "baseUrl": &…

力扣 226.反转二叉树

目录 1.解题思路2.代码实现 1.解题思路 该题思路很简单,就是利用递归,将每次的root结点的左右树相互交换即可,最后再返回root结点. 2.代码实现 struct TreeNode* invertTree(struct TreeNode* root) { if(rootNULL)return NULL;struct Tree…

由于找不到steam_api64.dll如何修复?steam_api64.dll丢失多种解决方法

steam_api64.dll文件介绍 steam_api64.dll是Steam平台的一个关键组件,主要用于支持Steam客户端和相关游戏的应用程序。这个文件缺失或损坏会导致Steam及相关游戏无法正常运行。它位于Steam安装目录的bin子文件夹中。 steam_api64.dll丢失的原因 系统误删&#xf…

专攻C++真题合集(1)

C语言作为一门广泛使用的编程语言,已经成为了许多IT领域从业者的必备技能之一。为了帮助大家更好地掌握C语言,本文将为大家提供一些专门的C真题。 1. 指针 题目一:请编写一个函数,函数名为swap,交换两个整数型变量的…

爬虫代理技术与构建本地代理池的实践

爬虫中代理的使用: 什么是代理 代理服务器 代理服务器的作用 就是用来转发请求和响应 在爬虫中为何需要使用代理? 隐藏真实IP地址:当进行爬取时,爬虫程序会发送大量的请求到目标网站。如果每个请求都使用相同的IP地址&#xff…

【C++】POCO学习总结(七):进程、管道、进程间同步、共享内存

【C】郭老二博文之:C目录 1、Poco::Process 进程 1.1 说明 Poco::Process的功能: 获取有关当前进程的一些信息开始一个新的进程终止另一个进程 1.2 用法 头文件:#include “Poco/Process.h” Poco::Process中的所有方法都是静态的。 常…

修复 MyBatis 中空值引起的 SQL 语法错误

修复 MyBatis 中空值引起的 SQL 语法错误 背景 最近在查看别人的项目代码时&#xff0c;遇到了一个问题&#xff1a;数据库中的数据为空。在调试过程中&#xff0c;发现问题出现在调用 MyBatis 中的方法&#xff1a;listByIds(Collection<? extends Serializable> idL…

[cmake] --- find_package

1 find_package的作用 find_package是CMake中用于查找并加载外部库的指令。它可以根据指定的参数在系统或用户指定的路径中查找库文件&#xff0c;并生成相应的变量供后续使用。 2 find_package基本语法 find_package(<PackageName> [version] [EXACT] [QUIET] [MODUL…

医学机器学习数据集介绍与使用 ABIDE Autism Brain Imaging Data Exchange I

ABIDE I 简介 自闭症脑成像数据交换I&#xff08;ABIDE I&#xff09;代表了第一个ABIDE倡议。作为基层工作&#xff0c;ABIDE I涉及17个国际站点&#xff0c;共享以前收集的静息态功能磁共振成像&#xff08;R-fMRI&#xff09;、解剖和表型数据集&#xff0c;这些数据集可供…

.net core 封装一个统一的返回结果

public class ApiResponse<T> { public bool Success { get; set; } public T? Data { get; set; } public string? Message { get; set; } public ApiResponse(bool success, T? data, string errorMessage "") { …

矩阵快速幂及应用实战[C/C++]

矩阵快速幂 矩阵快速幂可以用来优化递推问题&#xff0c;如状态机DP&#xff0c;需要一丢丢线性代数里面矩阵的概念&#xff0c;只需要知道简单的矩阵乘法&#xff0c;结合我们普通的二分快速幂就能很快的掌握矩阵快速幂。 问题引入 三步问题。有个小孩正在上楼梯&#xff0c;楼…

选择三个机器学习算法,代码实现 ,并选择一个数据集进行性能分析

1. 线性回归算法 线性回归是一种用于预测连续数值的监督学习算法。以下是使用Python和scikit-learn库实现线性回归的示例代码&#xff1a; import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from…