51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【好玩的Docker项目】无需安装客户端!从任何地方远程访问一个或多个桌面!——部署Guacamole远程桌面网关服务

前言 {#前言}

什么是Guacamole?

Apache Guacamole 是无客户端远程桌面网关,是基于 HTML5 的远程桌面控制框架。它支持标准协议,例如 VNC,RDP和SSH。

Guacamole是无客户端的远程桌面网关。它支持VNC,RDP和SSH等标准协议。 之所以称为无客户端,就是因为不需要插件或客户端软件。

感谢HTML5,一旦Guacamole安装在服务器上,你访问各种系统桌面就只需要一个Web浏览器。 title

关于 guacamole 更多的介绍,可以到这里看看:https://github.com/TelDragon/guacamole

一、效果展示 {#一效果展示}

GitHub项目地址:https://github.com/TelDragon/guacamole

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

Docker地址:https://hub.docker.com/r/jwetzell/guacamole

1、登录界面 {#1登录界面}

guacamole登录界面

Guacamole登录后显示的页面: guacamole登陆后的界面

2、VNC展示 {#2vnc展示}

"CentOS 7 TigerVNC"连接结果,主要测试TigerVNC,采用VNC协议

guacamole_VNC

"Ubuntu x11vnc",测试x11vnc

guacamloe_ubuntu

3、RDP展示 {#3rdp展示}

"Windows 10(Test)"连接的结果展示,测试RDP

guacamole_windows

4、SSH展示 {#4ssh展示}

"CentOS SSH"连接结果,测试SSH

guacamole_ssh

二、搭建环境 {#二搭建环境}

  • 服务器:腾讯香港轻量应用服务器24元/月VPS一台(最好是选非大陆的服务器)(购买链接
  • 系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)
  • 域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程
  • 安装好Docker、Docker-compose(相关脚本
  • 【非必需二选一】安装好宝塔面板,并安装好Nginx(安装地址
  • 【非必需二选一】安装好Nginx Proxy Manager(相关教程

三、搭建视频 {#三搭建视频}

YouTube:https://youtu.be/ynhsGY8rX-c

哔哩哔哩【完整版本可以点击去吐槽到B站观看】:

四、开始部署 {#四开始部署}

1、搭建Docker环境 {#1搭建docker环境}

参考这篇:【Docker系列】不用宝塔面板,小白一样可以玩转VPS服务器!

2、部署代码 {#2部署代码}

sudo su

cd \~


mkdir -p data/docker_data/guacamole


cd /root/data/docker_data/guacamole

`nano docker-compose.yml
`

docker-compose.yml文件内容:

version: "3"
services:
  guacamole:
    image: jwetzell/guacamole
    container_name: guacamole
    volumes:
      - ./postgres:/config
    ports:
      - 8181:8080
volumes:
  postgres:
    driver: local

运行

docker-compose up -d 

在浏览器中打开Guacamole Web应用,访问

http://ip:8181

默认账号:guacadmin
默认密码:guacadmin

建议新建一个用户,然后删除默认的账户。

3、放行相关端口 {#3放行相关端口}

遇到访问不了,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。

4、配置反向代理 {#4配置反向代理}

详情参考视频,注释掉Nginx配置文件中的这部分内容:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }




代码如下:

location / {
    proxy_pass http://127.0.0.1:8181/;
    rewrite ^/(.*)$ /$1 break;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade-Insecure-Requests 1;
    proxy_set_header X-Forwarded-Proto https;
}

5、测试连接 {#5测试连接}

SSH {#ssh}

image-20220223225620723 image-20220223225642816

RDP {#rdp}

image-20220223225726260 image-20220223225820640

返回首页,点击图标即可连接。

image-20220223230706078

6、高级设置------两步验证(可选) {#6高级设置两步验证可选}

docker-compose.yml文件内容:

version: "3"
services:
  guacamole:
    image: jwetzell/guacamole
    container_name: guacamole
    volumes:
      - ./postgres:/config
    ports:
      - 8181:8080
    environment:
      - EXTENSIONS=auth-totp
volumes:
  postgres:
    driver: local

建议使用的二步验证工具------Authy

不要用Google的那个Google Authenticator!

不要用Google的那个Google Authenticator!

不要用Google的那个Google Authenticator!

五、更新Guacamole {#五更新guacamole}

参考:【Docker系列】Docker更新容器镜像的三种方法

第一步 {#第一步}

进入到你docker-compose所在的文件夹下,执行

docker-compose pull

第二步 {#第二步}

重启你的容器

docker-compose up -d --remove-orphans

第三步(可选) {#第三步可选}

删除掉旧的镜像

docker image prune 

六、最后 {#六最后}

祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。

七、参考资料 {#七参考资料}

https://hub.docker.com/r/jwetzell/guacamole

https://www.youtube.com/watch?v=DGw6P5Lkj-U&t=44s

https://www.youtube.com/watch?v=gsvS2M5knOw&t=964s

https://laosu.ml/2020/10/16/%E9%83%A8%E7%BD%B2Guacamole%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E7%BD%91%E5%85%B3%E6%9C%8D%E5%8A%A1/

赞(0)
未经允许不得转载:工具盒子 » 【好玩的Docker项目】无需安装客户端!从任何地方远程访问一个或多个桌面!——部署Guacamole远程桌面网关服务