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

前言

什么是Guacamole?


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


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


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




关于 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、登录界面



Guacamole登录后显示的页面:




2、VNC展示

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




“Ubuntu x11vnc”,测试x11vnc




3、RDP展示

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




4、SSH展示

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




二、搭建环境

服务器:腾讯香港轻量应用服务器24元/月VPS一台(最好是选非大陆的服务器)(购买链接)

系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)

域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)

安装好Docker、Docker-compose(相关脚本)

【非必需二选一】安装好宝塔面板,并安装好Nginx(安装地址)

【非必需二选一】安装好Nginx Proxy Manager(相关教程)

三、搭建视频

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


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


四、开始部署

1、搭建Docker环境

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


2、部署代码

sudo su


cd ~


mkdir -p data/docker_data/guacamole


cd /root/data/docker_data/guacamole


nano docker-compose.yml

COPY

docker-compose.yml文件内容:


version: "3"

services:

  guacamole:

    image: jwetzell/guacamole

    container_name: guacamole

    volumes:

      - ./postgres:/config

    ports:

      - 8181:8080

volumes:

  postgres:

    driver: local

COPY

运行


docker-compose up -d 

COPY

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


http://ip:8181

COPY

默认账号:guacadmin

默认密码:guacadmin


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


3、放行相关端口

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


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; 

    }

COPY

代码如下:


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;

}

COPY

5、测试连接

SSH




RDP




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




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

COPY

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


不要用Google的那个Google Authenticator!


不要用Google的那个Google Authenticator!


不要用Google的那个Google Authenticator!


五、更新Guacamole

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


第一步

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


docker-compose pull

COPY

第二步

重启你的容器


docker-compose up -d --remove-orphans

COPY

第三步(可选)

删除掉旧的镜像


docker image prune 

COPY

六、最后

祝大家用得开心,有问题可以去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/


«    2024年2月    »
1234
567891011
12131415161718
19202122232425
26272829
控制面板
您好,欢迎到访网站!
  查看权限
网站收藏

Powered By Z-BlogPHP 1.7.3