标签搜索

目 录CONTENT

文章目录

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

咕咕鸽
2022-02-24 / 11 评论 / 4 点赞 / 2,909 阅读 / 2,647 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

前言

什么是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、登录界面

guacamole登录界面

Guacamole登录后显示的页面:

guacamole登陆后的界面

2、VNC展示

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

guacamole_VNC

“Ubuntu x11vnc”,测试x11vnc

guacamloe_ubuntu

3、RDP展示

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

guacamole_windows

4、SSH展示

"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环境

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

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、放行相关端口

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

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、测试连接

SSH

image-20220223225620723 image-20220223225642816

RDP

image-20220223225726260 image-20220223225820640

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

image-20220223230706078

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

参考:【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/部署Guacamole远程桌面网关服务/

4
广告 广告

评论区