Docker快速部署Apache Guacamole
Docker快速部署Apache Guacamole ,实现远程访问
git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git"
cd guacamole-docker-compose
./prepare.sh
docker-compose up -d
https://IP地址:8443/
用户名:guacadmin
密码:guacadmin
docker exec -it -u 0 guacamole_compose /bin/bash
/home/guacamole/tomcat/webapps/guacamole/translations/en.json #登陆页面文件
/home/guacamole/tomcat/webapps/guacamole/images #图像文件,包括logo等
云Docker部署Guacamole经frp中转远程连接Windows
docker启动guacamole
使用Docker安装Guacamole远程网关并配置录像回放
# 创建docker主目录和配置目录
mkdir -p /opt/docker /etc/docker
# 创建docker配置文件
tee /etc/docker/daemon.json <<-'END'
{"data-root": "/opt/docker","log-driver": "json-file","log-opts": {"max-size": "800m","max-file": "50"},"registry-mirrors": ["https://hub-mirror.c.163.com"]
}
END
# 添加阿里docker镜像源
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker docker-compose-plugin
dnf install docker-ce docker-ce
# 启动docker并设置开机自动启动
systemctl enable --now docker
# 查看docker docker-compose版本
docker -v
docker compose version
# 拉取mysql数据库
docker pull mysql:8.0.33-debian
# 拉取guacamole 核心
docker pull guacamole/guacd:1.5.1
# 拉取guacamole Web客户端
docker pull guacamole/guacamole:1.5.1
# 创建程序主目录
mkdir -p /opt/guacamole
# 创建插件目录
mkdir -p /opt/guacamole/extensions
# 创建录像目录
mkdir -p /opt/guacamole/recordings
# 创建数据库初始化脚本目录
mkdir -p /opt/guacamole/initdb.d
# 下载快速链接插件
curl -O https://archive.apache.org/dist/guacamole/1.5.1/binary/guacamole-auth-quickconnect-1.5.1.tar.gz
# 下载录像存储插件
curl -O https://archive.apache.org/dist/guacamole/1.5.1/binary/guacamole-history-recording-storage-1.5.1.tar.gz
# 解压插件
tar -zxvf guacamole-auth-quickconnect-1.5.1.tar.gz
tar -zxvf guacamole-history-recording-storage-1.5.1.tar.gz
# 移动插件至插件目录
mv guacamole-auth-quickconnect-1.5.1/guacamole-auth-quickconnect-1.5.1.jar /opt/guacamole/extensions/
mv guacamole-history-recording-storage-1.5.1/guacamole-history-recording-storage-1.5.1.jar /opt/guacamole/extensions/
# 配置插件目录所有者 1001为guacamole容器内的guacamole用户UID和GID
chown -R 1001.1001 /opt/guacamole/extensions
# 配置插件目录权限
chmod -R 644 /opt/guacamole/extensions
# 配置录像目录所有者
# 1000为guacd容器内的guacd用户UID
# 1001为guacamole容器内的guacamole用户组GID
chown 1000.1001 /opt/guacamole/recordings
# 配置插件目录权限
chmod 2750 /opt/guacamole/recordings
# 运行guacamole容器生成数据库初始化脚本
docker run --rm guacamole/guacamole:1.5.1 /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/initdb.d/initdb.sql
# 创建docker-compose.yml容器编排配置文件
vi /opt/guacamole/docker-compose.yml
services:guacamole-mysql:image: mysql:8.0.33-debiancontainer_name: guacamole-mysqlvolumes:- /etc/localtime:/etc/localtime:ro# 数据库数据绑定至guacamole-mysql-data卷- guacamole-mysql-data:/var/lib/mysql# 数据库初始化脚本- /opt/guacamole/initdb.d/initdb.sql:/docker-entrypoint-initdb.d/initdb.sqlcommand:- "--character-set-server=utf8"- "--collation-server=utf8_bin"restart: alwaysenvironment:# 数据库root密码- MYSQL_ROOT_PASSWORD=2477bb2991dd472094d118ad9bafa0ce# 数据库名- MYSQL_DATABASE=guacamole# 数据库用户- MYSQL_USER=guacamole# 数据库密码- MYSQL_PASSWORD=fea78183e72c4e7798e1d803e2d36109expose:- "3306"networks:guacamole_network:guacamole-guacd:image: guacamole/guacd:1.5.1container_name: guacamole-guacdvolumes:- /etc/localtime:/etc/localtime:ro# 录像目录- /opt/guacamole/recordings:/var/lib/guacamole/recordingsrestart: alwaysexpose:- "4822"networks:guacamole_network:guacamole-web:image: guacamole/guacamole:1.5.1container_name: guacamole-webvolumes:- /etc/localtime:/etc/localtime:ro# 录像目录- /opt/guacamole/recordings:/var/lib/guacamole/recordings# 插件目录- /opt/guacamole/extensions:/etc/guacamole/extensionsrestart: alwaysenvironment:# guacd主机名- GUACD_HOSTNAME=guacamole-guacd# guacd端口- GUACD_PORT=4822# 首选认证方式- EXTENSION_PRIORITY=mysql# 数据库主机名- MYSQL_HOSTNAME=guacamole-mysql# 数据库端口- MYSQL_PORT=3306# 数据库名- MYSQL_DATABASE=guacamole# 数据库用户- MYSQL_USER=guacamole# 数据库密码- MYSQL_PASSWORD=fea78183e72c4e7798e1d803e2d36109# guacamole主目录(插件、库、配置等)- GUACAMOLE_HOME=/etc/guacamole# 会话超时时间 单位: 分钟- API_SESSION_TIMEOUT=60ports:- "80:8080"networks:guacamole_network:networks:guacamole_network:name: "guacamole_network"driver: bridgeipam:config:- subnet: 172.31.125.0/24gateway: 172.31.125.1volumes:# 数据库数据卷guacamole-mysql-data:name: "guacamole-mysql-data"
# 进入目录
cd /opt/guacamole
# 启动容器
docker compose up -d
LDAP/AD 身份验证
wget https://dlcdn.apache.org/guacamole/1.4.0/binary/guacamole-auth-ldap-1.4.0.tar.gz
tar xvzf guacamole-auth-ldap-1.4.0.tar.gz
cd guacamole-auth-ldap-1.4.0/
cp guacamole-auth-ldap-1.4.0.jar /etc/guacamole/extensions/# 在活动目录中新建名为guacadmin的用户
# 在活动目录中新建名为Group_Guacamole_Users的用户组,将guacadmin加入到Group_Guacamole_Users组中,只该用户组中的用户可以登录guacamolevim /etc/guacamole/guacamole.properties#LDAP Properties
ldap-hostname: x.x.x.x
ldap-port: 389
ldap-encryption-method: none
ldap-user-base-dn:DC=domain,DC=local
ldap-search-bind-dn:CN=guacadmin,OU=ou,DC=doman,DC=local
ldap-search-bind-password: Password
ldap-username-attribute: sAMAccountName
ldap-user-search-filter: (memberOf=CN= Group_Guacamole_Users,OU=ou,DC=domain,DC=local)systemctl restart guacd
systemctl restart tomcat
相关文章:
Docker快速部署Apache Guacamole
Docker快速部署Apache Guacamole ,实现远程访问 git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git" cd guacamole-docker-compose ./prepare.sh docker-compose up -dhttps://IP地址:8443/ 用户名:guacadmin 密码:guacadmin docker …...
C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(1)
1、表格处理程序示例 表格处理程序是一个二维的“细胞”网格,每个格子包含了一个数字或者字符串。专业的表格处理程序比如微软的Excel提供了执行数学运算的能力,比如计算格子中的值的和。表格处理程序示例无意挑战微软的市场地位,但是对于演示…...
es6中set和map的区别
在ES6(ECMAScript 2015)中,Set 和 Map 是两种新的集合类型,它们提供了更高级的数据结构来存储唯一值或键值对集合。尽管它们在功能上有些相似,但它们在用途和内部机制上存在一些关键区别。 1. 基本概念 Set࿱…...
高级实时通信:基于 Python 的 WebSocket 实现与异步推送解决方案
高级实时通信:基于 Python 的 WebSocket 实现与异步推送解决方案 目录 🟢 WebSocket 协议概述🔵 在 FastAPI 中实现 WebSocket🟣 Django Channels 实现异步实时通信🔴 使用 Redis 实现实时推送 🟢 1. WebS…...
大二上学期详细学习计划
本学习完成目标: 项目: 书籍:《mysql必知必会》《java核心技术卷》(暂时)加强JavaSE的学习,掌握Java核心Mysqlsql(把牛客上的那50道sql语句题写完)gitmaven完成springboot项目&…...
Kafka【十四】生产者发送消息时的消息分区策略
【1】分区策略 Kafka中Topic是对数据逻辑上的分类,而Partition才是数据真正存储的物理位置。所以在生产数据时,如果只是指定Topic的名称,其实Kafka是不知道将数据发送到哪一个Broker节点的。我们可以在构建数据传递Topic参数的同时ÿ…...
SQL优化:执行计划详细分析
视频讲解:SQL优化:SQL执行计划详细分析_哔哩哔哩_bilibili 1.1 执行计划详解 id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1.1.1 ID 【概…...
Android Studio -> Android Studio 获取release模式和debug模式的APK
Android Studio上鼠标修改构建类型 Release版本 激活路径:More tool windows->Build Variants->Active Build Variant->releaseAPK路径:Project\app\build\intermediates\apk\app-release.apk Debug版本 激活路径:More tool w…...
基于 SpringBoot 的实习管理系统
专业团队,咨询送免费开题报告,大家可以来留言。 摘 要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,实习管理也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越…...
vmware workstation 17 linux版
链接: https://pan.baidu.com/s/1F3kpNEi_2GZW0FHUO-8p-g?pwd6666 提取码: 6666 1 先安装虚拟机 不管什么错误 先安装vmware workstation 17 2 编译 覆盖安装vmware-host-modules-workstation-17.5.1 只需这样就可以 # sudo apt install dkms build-essential bc iw…...
Windows环境本地部署Oracle 19c及卸载实操手册
前言: 一直在做其他测试,貌似都忘了Windows环境oracle 19c的部署,这是一个很早很早的安装记录了,放上来做个备录给到大家参考。 Oracle 19c:进一步增强了自动化功能,并提供了更好的性能和安全性。这个版本在自动化、性能和安全性方面进行了重大改进,以满足现代企业对数…...
MapStruct介绍
一、MapStruct 1.1何为MapStruct 要说这个东西,其实和我们刚刚讲到的Lombok相类似。其是由我们的源代码加上MapStruct经过编译后得到.class文件,文件中自动补全了代码。那么补全了什么代码?实现了什么功能? MapStruct的产生&…...
35天学习小结
距离上次纪念日,已经过去了35天咯 算算也有5周了,在这一个月里,收获的也挺多,在这个过程中认识的大佬也是越来越多了hh 学到的东西,其实也没有很多,这个暑假多多少少还是有遗憾的~ 第一周 学习了一些有…...
【iOS】UIViewController的生命周期
UIViewController的生命周期 文章目录 UIViewController的生命周期前言UIViewController的一个结构UIViewController的函数的执行顺序运行代码viewWillAppear && viewDidAppear多个视图控制器跳转时的生命周期pushpresent 小结 前言 之前对于有关于UIViewControlller的…...
ELK在Linux服务器下使用docker快速部署(超详细)
ELK是什么? 首先说说什么是ELK ELK 是一个开源的日志管理和分析平台,由三个主要组件组成: Elasticsearch:一个分布式搜索和分析引擎,能够快速存储、搜索和分析大量数据。它是 ELK 堆栈的核心,负责数据的…...
unity导入半透明webm + AE合成半透明视频
有些webm的文件导入unity后无法正常播报,踩坑好久才知道需要webm中的:VP8 标准 现在手上有几条mp4双通道的视频,当然unity中有插件是可以支持这种视频的,为了省事和代码洁癖,毅然决然要webm走到黑。 mp4导入AE合成半透…...
力扣: 四数相加II
文章目录 需求代码结尾 需求 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1: 输入…...
径向基函数神经网络RBFNN案例实操
简介 (来自ChatGPT的介绍,如有更正建议请指出) 径向基函数神经网络(Radial Basis Function Neural Network, RBFNN)是一种特殊的前馈神经网络,其结构和特点与其他常见的神经网络有所不同,主要表现在以下几个方面: 网络结构三层结构:RBF神经网络通常由三层组成:输入层…...
Java-数据结构-二叉树-习题(一) (✪ω✪)
文本目录: ❄️一、习题一(检查两颗树是否相同): ▶ 思路: ▶ 代码: ❄️二、习题二(另一棵树的子树): ▶ 思路: ▶ 代码: ❄️三、习题三(翻转二叉树): ▶ 思路: ▶ 代…...
js 时间戳转日期格式
timestampToDate(obj.project_time), import moment from “moment”; const timestampToDate (timestamp: any) > { const date new Date(timestamp * 1000); const newDate moment(date).format(“YYYY-MM-DD”); return newDate; // 使用Intl.DateTimeFormat进行格式…...
Vitis HLS避坑指南:hls::stream深度设置不当,你的FPGA设计可能卡死
Vitis HLS实战:如何避免hls::stream深度配置引发的硬件死锁 在FPGA加速器开发中,数据流设计是最常见的性能优化手段之一。Vitis HLS提供的hls::stream模板类,让C代码能够直接映射到高效的硬件数据流结构。但许多开发者都遇到过这样的困境&…...
解决Windows HEIC预览难题:让iPhone照片在资源管理器中一目了然
解决Windows HEIC预览难题:让iPhone照片在资源管理器中一目了然 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 当摄影爱好…...
Java微服务Istio迁移踩坑实录(17个高频Failure Case全复盘)
第一章:Java微服务Istio 1.20迁移全景认知Istio 1.20 是一个面向生产就绪场景的重要版本,其核心变化聚焦于控制平面简化、xDS 协议增强与 Java 微服务生态的深度协同。该版本正式弃用 Istiod 中的 Pilot、Galley 和 Citadel 组件,统一由 isti…...
避坑指南:用conda一键搞定gymnasium[box2d]安装(附常见错误解决方案)
Conda环境下的gymnasium[box2d]高效安装与疑难排解全攻略 强化学习实践者常会遇到一个令人头疼的问题:在Windows系统上安装gymnasium[box2d]时,总是遭遇各种编译错误和依赖问题。本文将带你彻底解决这个痛点,通过conda环境管理工具࿰…...
TypeScript——模块解析
模块解析1、相对模块导入2、非相对模块导入3、模块解析策略4、模块解析策略之Classic4.1、解析相对模块导入4.2、解析非相对模块导入5、模块解析策略之Node5.1、解析相对模块导入5.2、解析非相对模块导入6、--baseUrl6.1、设置--baseUrl6.2、解析--baseUrl7、paths7.1、设置pat…...
别再手动配环境了!用COLMAP已知位姿重建,从数据集到.ply点云保姆级避坑指南
别再手动配环境了!用COLMAP已知位姿重建,从数据集到.ply点云保姆级避坑指南 三维重建技术正逐渐成为计算机视觉领域的标配工具,而COLMAP作为开源重建方案中的佼佼者,其强大功能背后却隐藏着诸多配置陷阱。本文专为那些已经拥有带位…...
extern ‘C‘原理与C/C++混合编程实践
1. 深入解析extern C的底层原理与工程实践1.1 C/C混合编程的核心挑战在嵌入式系统开发中,C与C语言的混合编程是常见需求。当C代码需要调用C语言编写的库函数时,编译器对函数名的处理方式差异会导致链接错误。这种差异源于两种语言对函数重载和名字空间的…...
解锁Stable Diffusion隐藏玩法:用ChatGPT批量生成动漫角色Prompt全攻略
从零到大师:ChatGPT与Stable Diffusion打造专属动漫角色的终极指南 在数字艺术创作领域,AI绘画工具正掀起一场前所未有的革命。想象一下,你脑海中那个独特的动漫角色形象,不再需要数月的美术训练就能实现——只需要正确的工具组合…...
SPIRAN ART SUMMONER对比评测:与传统图像生成算法的效果差异
SPIRAN ART SUMMONER对比评测:与传统图像生成算法的效果差异 本文通过实际测试对比,展示SPIRAN ART SUMMONER与传统图像生成算法在效果、速度、易用性等方面的真实差异,用数据和案例说话。 1. 评测背景与方法 图像生成技术近年来发展迅猛&am…...
AppleRa1n开源工具:iOS 15-16激活锁绕过完整解决方案
AppleRa1n开源工具:iOS 15-16激活锁绕过完整解决方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 激活锁(Activation Lock)作为iOS设备的重要安全机制࿰…...
