Apache Guacamole 是一个开源的远程桌面网关项目,它允许用户通过网页浏览器安全地访问远程桌面环境,而无需在本地计算机上安装任何额外的客户端软件。Guacamole 支持多种远程桌面协议,包括但不限于:
RDP (Remote Desktop Protocol):微软的远程桌面协议,用于Windows系统的远程控制。
VNC (Virtual Network Computing):一种轻量级的远程控制协议,可用于多种操作系统。
SSH (Secure Shell):用于安全地远程登录到系统,通常用于类Unix系统。
远程办公:员工可以在家或其他地方通过互联网访问公司内部的工作站或服务器。
技术支持:IT人员可以远程访问用户的计算机以提供帮助,无需亲自到场。
数据中心管理:管理员可以从世界任何地方访问数据中心内的服务器。
教育:学生和教师可以远程访问实验室计算机或特定的应用程序。
云服务:云提供商可以使用Guacamole让用户通过浏览器访问虚拟桌面或应用程序。
Guacamole 的优势之一是它不需要客户端安装额外的软件,只需要一个支持HTML5的现代Web浏览器即可。这使得它非常适合需要跨平台兼容性的场景。此外,Guacamole还支持多种身份验证机制,并且可以与现有的单点登录系统集成,增强了安全性。
Guacamole 原生配置较为复杂,本人又菜不会配。因此这次采用 docker 来安装 Guacamole
# 因为本人的操作系统是 Alibaba Cloud Linux 3,系统默认带了 podman,使用 docker 的话需要先卸载 podman
$ yum remove podman buildah
# 添加 docker 仓库
$ yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 刷新软件源
$ yum clean all && yum makecache
# 安装 docker
$ yum install -y docker-ce docker-ce-cli containerd.io
# 安装 docker-compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')" /usr/local/bin/docker-compose# 新建程序目录
$ mkdir -p /home/xiufeigo/program/guacamole
$ cd /home/xiufeigo/program/guacamole
# 创建 docker-compose.yml
$ cat << EOF > docker-compose.yml
version: '3'
services:
guacamole-db:
image: mysql:8.0
container_name: guacamole-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: guac_password # 设置MySQL root密码
MYSQL_DATABASE: guacamole_db # Guacamole数据库名称
MYSQL_USER: guacamole_user # Guacamole数据库用户
MYSQL_PASSWORD: guac_password # Guacamole数据库用户密码
volumes:
- guac_db_data:/var/lib/mysql # 持久化 MySQL 数据
- ./mysql-init-scripts:/docker-entrypoint-initdb.d # 初始化SQL脚本目录
networks:
- guac-network
guacd:
image: guacamole/guacd:1.5.3
container_name: guacamole-guacd
restart: always
networks:
- guac-network
guacamole:
image: guacamole/guacamole:1.5.3
container_name: guacamole
environment:
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacamole_user
MYSQL_PASSWORD: guac_password
MYSQL_HOSTNAME: guacamole-db
GUACD_HOSTNAME: guacd
ports:
- "8888:8080" # 访问端口,将8080映射为8888
depends_on:
- guacd
- guacamole-db
networks:
- guac-network
volumes:
- guac_home:/home/xiufeigo/program/uacamole/.guacamole # 持久化 Guacamole 配置数据
volumes:
guac_db_data: # MySQL 数据持久化卷
guac_home: # Guacamole 数据持久化卷
networks:
guac-network:
EOF# 获取 mysql 建表 sql
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql$ docker-compose up -d# 复制建表 sql 到 docker 容器中
$ docker cp initdb.sql guacamole-mysql:/
# 建表
$ docker exec -it guacamole-mysql bash -c "mysql -uroot -proot_password guacamole_db < /initdb.sql"在浏览器中访问 http://服务器IP:8080/guacamole,默认用户名和密码为:
用户名:guacadmin
密码:guacadmin
首次登录后,建议立即更改默认密码 or 新建管理员账号后禁用 guacadmin 账号登陆
这个有手就行吧?就不用多说吧?
此处省略 n 字,参考本人博客的「Frp 内网穿透」一文