Apache Guacamole 是一个可以通过web浏览器的方式控制 VNC、Telnet、SSH、RDP、Kubernetes 的服务。只要你的电脑有浏览器即可访问并控制哪些服务。
这个服务分三个部分:
- guacamole:负责web前端页面
- guacd:负责后端,将各种协议转化为web兼容的格式
- mysql:数据库负责存储数据
一、安装
1.部署guacamole的docker-compose文件:
version: '3'
services:
guacamole-mysql:
image: mysql:8.0.33-debian
container_name: guacamole-mysql
hostname: guacamole-mysql
restart: always
networks:
- internal
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
- MYSQL_ROOT_PASSWORD=Admin@000
- MYSQL_DATABASE=guacamole
- MYSQL_USER=guacamole
- MYSQL_PASSWORD=guacamole@000
volumes:
- /home/docker/guacamole/mysql/data:/var/lib/mysql
- /home/docker/guacamole/mysql/conf.d:/etc/mysql/conf.d
- /home/docker/guacamole/mysql/logs:/var/log/mysql
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
guacamole-phpmyadmin:
image: lscr.io/linuxserver/phpmyadmin:latest
container_name: guacamole-phpmyadmin
hostname: guacamole-phpmyadmin
restart: always
depends_on:
- guacamole-mysql
networks:
- internal
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- PMA_ARBITRARY=0
- PMA_HOST=guacamole-mysql
volumes:
- /home/docker/guacamole/phpmyadmin/config:/config
guacd:
image: guacamole/guacd
container_name: guacd
hostname: guacd
restart: always
ports:
- "4822:4822"
networks:
- internal
environment:
- TZ=Asia/Shanghai
guacamole:
image: guacamole/guacamole
container_name: guacamole
hostname: guacamole
restart: always
depends_on:
- guacamole-mysql
- guacd
ports:
- "8080:8080"
networks:
- internal
environment:
TZ: Asia/Shanghai
GUACD_HOSTNAME: guacd
GUACD_PORT: 4822
MYSQL_HOSTNAME: guacamole-mysql
MYSQL_PORT: 3306
MYSQL_DATABASE: guacamole
MYSQL_USER: guacamole
MYSQL_PASSWORD: guacamole@000
networks:
internal:
external: true
其他说明:
- 上面yaml文件是要创建一个桥接的docker网络的
- 记得添加一个NGINX反向代理
- 页面访问端口:8080/tcp
- 由于是JAVA程序,启动会比较慢可能需要等待10min
2.下载数据库:
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- 它会创建一个容器,然后从容器导出数据库后自动删除容器。
- 数据库默认会被保存在当前工作目录
3.导入数据库
登录phpmyadmin,然后导入刚刚下载的数据库文件即可完成。
- 导入guacamole数据库即可。
- 默认容器部署好后会自动创建数据库用户和权限的
4.打开网址查看服务是否部署成功
- 网址:http://ip:8080/guacamole
- 默认账户:guacadmin 默认密码:guacadmin
- 如果是解析了域名替换为域名,加了证书改https即可
- 服务启动较慢可能需要等待10min以上。
二、中文乱码修复
1.中文字体导入
- 由于这个软件开发的时候压根没考虑中国用户,所以没中文,得自己想办法加个中文字体包上去。
- 中文字体包下载:点击下载
- 只需要导入这个容器即可:guacd
2.将工作目录下的字体文件导入到guacd容器的 /usr/share/fonts/ 目录下面
docker cp SIMHEI.TTF guacd:/usr/share/fonts/
3.进入guacd容器命令行:
docker exec -it guacd sh
4.检查是否存在这个文件:SIMHEI.TTF
cd /usr/share/fonts/ ls
5.如果存在,输入 exit退出即可。
6.登录服务网页端,再每次添加新连接时选择 显示–>字体名:SIMHEI
- 这个名字要和你上传的文件名字一直即可
- 只能适配Kubernetes、SSH、Telnet的中文字体乱码问题。
end…