欢迎访问我的博客,你的支持,是我最大的动力!

远程桌面网关 Apache Guacamole 1.0.0 部署-基于Docker方式

Linux 马从东 337℃ 评论
目录:
[显示]

2019-01-08 Apache Guacamole发布了最新版本1.0.0 赶紧用了一把

Apache Guacamole是一个使用Web(H5)做为前端的远程桌面网关,支持对使用VNC、RDP、Telnet和SSH协议服务器的远程访问

官网地址:http://guacamole.apache.org/

Guacamole架构

1> Web浏览器
用户通过浏览器连接和管理后端的服务器,即可以是Linux服务器,也可以是Windows服务器。因为是H5页面,实际上,甚至可以在移动设备,如手机上进行访问
2>guacamole
guacamole是用户与guacd交互的中转站,主要功能是权限管理、配置管理和协议转换,实际上是一个Web服务器,通常是Tomcat,用户登录到guacamole上之后,鉴权通过后,会请求后端的guacd
3>guacd
guacd实现与后端真实服务器的通信,支持VNC、RDP、Telnet和SSH协议

搭建

演示环境基于CentOS 7.3

安装 Docker 18.06.1
yum install wget
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm
yum install docker-ce-18.06.1.ce-3.el7.x86_64.rpm  #docker安装有依赖,所以使用yum来自动安装各种依赖
# 注docker 18不需要使用国内加速,不需要执行vi /etc/docker/daemon.json添加{"registry-mirrors": ["https://registry.docker-cn.com"]}
systemctl start docker
systemctl enable docker
部署 guacd 1.0.0
# 拉取镜像
docker pull guacamole/guacd:1.0.0
# 查看镜像
docker images
# guacd 不需要映射端口 两个容器间通过 link 方式通信 容器名假设为 my-guacd
docker run --name my-guacd -d --restart always guacamole/guacd:1.0.0
部署 guacamole 1.0.0
# 拉取镜像
docker pull guacamole/guacamole:1.0.0
# guacamole支持mysql数据库和postgresql数据库存储认证数据 这里使用mysql
# mysql也可以启用容器 但这里刚好有一个实例 故mysql使用外部实例
# 使用mysql需要创建数据库用户和数据库 这里数据库用户为guacamole 密码为guacamole 数据库名为guacamole
# 生成数据库初始化代码
docker run --rm guacamole/guacamole:1.0.0 /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
# 生成的initdb.sql是数据库初始化脚本  在guacamole库执行一下
# 该脚本会生成一个默认管理员帐号 guacadmin guacadmin
# 启动容器
docker run --name my-guacamole --link my-guacd:guacd \
-e MYSQL_HOSTNAME=192.168.1.88 \
-e MYSQL_PORT=3306 \
-e MYSQL_DATABASE=guacamole \
-e MYSQL_USER=guacamole \
-e MYSQL_PASSWORD=guacamole \
-d -p 80:8080 --restart always guacamole/guacamole:1.0.0
# 访问
http://192.168.1.110/guacamole/
用户名:guacadmin 密码:guacadmin
# 其它参数
GUACD_HOSTNAME
GUACD_PORT
其他

>使用Nginx反向代理
# 开启WebSocket 即 Upgrade 和 Connection 两参数

>数据库权限

CREATE DATABASE guacamole ;
CREATE USER 'guacamole'@'192.168.1.%' IDENTIFIED BY 'guacamole ';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'192.168.1.%';
FLUSH PRIVILEGES;

>呼出/隐藏面板 Ctrl + Alt + Shift  或 在屏幕上向左滑动

>传输文件  SSH 启用SFTP功能  需要指定远程服务器上的一个文件夹
SFTP -> Enable SFTP
SFTP -> File browser root directory #设置一个文件上传下载的工作目录

>传输文件 RDP 虚拟磁盘驱动器
注意 驱动器目录为guacd服务器上的一个目录,该目录需guacd的用户可读写
Device Redirection -> Enable drive
Device Redirection -> Drive name  #挂载到windows中的远程磁盘名称
Device Redirection -> Drive path   #guacd服务器上的一个目录
Device Redirection -> Automatically create drive  #若上步指定的目录不存在 则自动创建

>操作记录 SSH
将操作记录到文件 并可回放
文件记录存放于guacd服务器
Typescript -> Typescript path   #存放目录
Typescript -> Typescript name #文件名
Typescript -> Automatically create typescript path  #若指定的目录不存在则自动创建
回放方法:
scriptreplay filename.timing filename   #filename是Typescript name设置的值
filename.timing 记录操作的时点点偏移量
filename 是记录屏幕内容  保留字体颜色

>操作记录 RDP
生成视频文件
需要guacenc实用程序 该程序依赖ffmpeg libavcodec libavutil libswscale
生成filename.m4v文件命令
guacenc filename
guaclog filename

添加主机

登录&效果

添加Linux主机 SSH方式

选项非常多,最少必填项为
[EDIT CONNECTION]段
Name  会话名称
Location  位置,默认是ROOT
Protocol 协议,选SSH
[PARAMETERS]段
Network部分
Hostname 主机名或IP
Porrt 端口,一般为22
Authentication部分
Username 用户名
Password 密码
## 个人偏好
Display -> Color scheme: green-black  #字体为绿色 背景为黑色 比较养眼
Display -> Font size: 12  #字体大小
Terminal behavior -> Terminal type: xterm  #区分颜色显示

添加Windows主机 RDP方式

选项非常多,最少必填项为
[EDIT CONNECTION]段
Name  会话名称
Location  位置,默认是ROOT
Protocol 协议,选RDP
[PARAMETERS]段
Network部分
Hostname 主机名或IP
Porrt 端口,一般为3389
Authentication部分
Username 用户名
Password 密码
Security mode 安装验证方式,选Any  实际上极可能是rdp
Ignore server certificate 勾选,忽略服务器证书 通常是自签名证书 验证通常不通过
## 个人偏好
Display -> Resize method: Reconnect  #更改浏览器尺寸后 自动重连适配
Performance -> Enable theming  #显示主题  否则界面不美观
# 默认启动了音频重定向的
汉化

guacamole 默认未提供简体中文语言包,但可以自己添加
语言文件位于容器内 /usr/local/tomcat/webapps/guacamole/translations 目录下,是 json 文件,如英文为
/usr/local/tomcat/webapps/guacamole/translations/en.json

注意,新添加语言包后,容器要重启才会生效
[个别地方翻译得不够准确  可自行修改以下文件]

 

 

 

转载请注明:轻风博客 » 远程桌面网关 Apache Guacamole 1.0.0 部署-基于Docker方式

喜欢 (0)or分享 (0)