首页 > 其他分享 >Apache Guacamole 安装及配置VNC远程桌面控制

Apache Guacamole 安装及配置VNC远程桌面控制

时间:2024-09-05 16:52:38浏览次数:14  
标签:VNC guacamole postgres podman 远程桌面 docker Guacamole

文章目录

官网

简介

Apache Guacamole 是一个开源的远程桌面网关,可以通过浏览器访问各种远程桌面协议。它由 Apache 软件基金会维护,主要功能是提供一个无需客户端插件的 Web 访问解决方案。

支持多种协议

  • VNC(Virtual Network Computing): 用于远程控制计算机的协议。
  • RDP(Remote Desktop Protocol): 微软的远程桌面协议。
  • SSH(Secure Shell): 用于安全地远程登录和管理计算机的协议。

无插件浏览器访问

用户可以通过现代 Web 浏览器(如 Chrome、Firefox、Edge)访问远程计算机,无需安装额外的客户端插件或软件。

配置和管理

通过 Web 界面进行用户管理、配置远程连接和设置访问权限。
可以通过配置文件和数据库进行更细粒度的控制。

应用场景

  • 远程工作: 允许员工在不同的地点访问公司内部的计算机和系统。
  • 技术支持: 支持 IT 人员远程管理和排除故障。
  • 教育和培训: 提供远程访问实验环境或教学资源。

Podman 部署 Apache Guacamole

注意: Podman 是 Docker 替代工具;操作命令兼容,示例中的 podman 命令可以直接替换为 docker;Podman 的安装与使用请阅读 《安装 podman 与 podman-compose》 文章。

  • 启动 podman 虚拟机(Mac环境需要启动虚拟才能正常使用 Podman)
podman machine start podman-vm

拉取 docker 镜像

podman pull guacamole/guacamole
podman pull guacamole/guacd
podman pull postgres:16
# 或
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull postgres:16

docker-compose.yml

version: '3'
services:
  guacamole:
    image: guacamole/guacamole
    container_name: guacamole
    ports:
      - '8080:8080'
    environment:
      GUACD_HOSTNAME: guacd
      GUACD_PORT: 4822
      # 配置 MySQL 数据库
      # MYSQL_HOSTNAME: 192.168.0.217
      # MYSQL_PORT: 3306
      # MYSQL_DATABASE: 'guacamole_db'
      # MYSQL_USER: 'zyuser'
      # MYSQL_PASSWORD: 'Lkm##2021'
      # 配置 PostgreSQL 数据库
      POSTGRESQL_HOSTNAME: postgres
      POSTGRESQL_PORT: 5432
      POSTGRES_DATABASE: 'guacamole_db'
      POSTGRES_USER: 'root'
      POSTGRES_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'
    depends_on:
      - guacd
  guacd:
    image: guacamole/guacd
    container_name: guacd
    ports:
      - '4822:4822'
  postgres:
    image: postgres:16
    container_name: postgres
    # 容器设置为特权模式
    privileged: true
    # restart: always
    ports:
      - '5432:5432'
    environment:
      # 创建具有超级用户权限的指定用户和同名的数据库
      POSTGRES_USER: 'root'
      POSTGRES_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'
      # 如果未指定,则将POSTGRES_USER使用的值。
      POSTGRES_DB: 'guacamole_db'
      # 默认为/var/lib/postgresql/data
      PGDATA: /var/lib/postgresql/data
    volumes:
      - /etc/localtime:/etc/localtime
      - ./postgres/data:/var/lib/postgresql/data

部署 PostgreSQL

# 数据存在缩主机上
mkdir postgres/data
# 执行部署命令
podman-compose up -d postgres

生成 initdb.sql 脚本

注: 根据自己的需求生成对应的数据库初始化 SQL 脚本。本章示例采用 PostgreSQL

  • 生成 PostgreSQL 初始化 SQL 脚本
podman run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgresql > initdb.sql
  • 生成 MySQL 初始化 SQL 脚本
podman run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
  • 连接 PostgreSQL 数据库,选择 guacamole_db 库 执行 initdb.sql 脚本初始化数据库。

在这里插入图片描述

部署 guacamole

podman-compose up -d guacamole

Guacamole 基本用法

注: Guacamole 默认登录账号/密码 guacadmin/guacadmin

在这里插入图片描述

配置 VNC 连接

注意: VNC 只能连接与 Guacamole 服务同一个局域网 的电脑。外网访问需要为 Guacamole 配置域名进行访问。

  • Nginx 配置
location /guacamole/ {
    proxy_set_header X-Real_IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_pass http://127.0.0.1:8080/guacamole/;
}
  • 进入设置页面添加连接

在这里插入图片描述

  • 返回首页点击连接

在这里插入图片描述

  • 连接的是本人 MacBook 电脑

在这里插入图片描述

  • 手机上效果

在这里插入图片描述

Mac 电脑开启自带的 VNC 服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签:VNC,guacamole,postgres,podman,远程桌面,docker,Guacamole
From: https://blog.csdn.net/weixin_42607526/article/details/141929541

相关文章

  • 远距离跨网络实现windows远程桌面连接
    1.保证已经打开被连接电脑---远程访问---权限。我的电脑--右键--属性--远程设置  2.选择允许连接(选择用户和高级没有特殊设置可以不动,被连接电脑当前登陆的账号就可以满足权限)    3.打开--控制面板    4.依次选择至当前位置,打开允许应用或功能通过防......
  • Windows 远程桌面指南
    概述Windows远程桌面(也称为RDP)允许你从一台计算机远程连接到另一台运行Windows操作系统的计算机。开启远程桌面在“设置”中前往“系统>远程桌面”,将“远程桌面”设置为“开”。确保Windows正确存储微软账号的密码绝大多数情况下,我们将使用微软账号及其密码来登录“远程......
  • 【Internet Protocol】ip介绍,如何组局域网实现远程桌面和文件共享
    @目录1.何为“上网”1.1定义1.2为什么连了WiFi就能上网了?2.ip2.1什么是ip2.2为什么区分广域网和局域网,ip的唯一性2.3如何查看设备的ip2.4什么叫"ping"2.5区分是否两个ip是否在同一局域网2.5.1最稳妥的方式:ip&mask2.5.2最方便的方式:ping2.6ipv4与ipv6的区别3.远程桌面控......
  • 怎么退出远程桌面控制?远程桌面软件哪个好?
    怎么退出远程桌面控制?远程桌面软件哪个好?远程桌面连接 | 2021-03-14在这个网络时代,我们的办公模式也在不断更新,现在有越来越多的人可以使用远程桌面软件进行异地办公、学习等操作,对于系统自带的远程服务,许多电脑小白有诸多问题想知道,比如怎么退出全屏远程桌面控制?有没......
  • ubuntu18安装novnc实现web远程桌面
    1.安装基础软件sudoaptinstall-ygit 2.下载novncsudogitclonegit://github.com/kanaka/noVNC/opt/novnc 3.修改权限sudochown-R$USER:$USER/opt/novnc 4.安装并运行vnc服务sudoaptinstall-ytightvncserversudovncserver 5.生成证书......
  • Ubuntu22.04怎么开启远程桌面
    环境查看#lsb_release-aNoLSBmodulesareavailable.DistributorID: UbuntuDescription: Ubuntu22.04.4LTSRelease: 22.04Codename: jammy#uname-aLinuxMS-7E076.8.0-40-generic#40~22.04.3-UbuntuSMPPREEMPT_DYNAMICTueJul3017:30:19UTC2x86_64x......
  • 技术革新!MultiDesk:高效远程桌面管理工具,TAB切换引领新潮流!
    前言话说远程操作,win系统自带的远程工具那可真是个让人头疼又爱不释手的活儿;不过别怕,今天小江湖要给大家揭秘一款神器——MultiDesk;有了它,可以不需要频繁切换窗口,不再为记不住复杂的服务器地址和密码而烦恼,更不用羡慕那些能一键启动远程程序的大佬们;它就像是远程操作路上的“......
  • Windows操作系统远程桌面端口修改脚本
    change_rdsport_CN.bat:@echooffcolorf0echo修改远程桌面3389端口(支持Windows2003,2008,2008R2,2012,2012R2,7,8,10)echo自动添加防火墙规则set/pc=请输入新的端口:if"%c%"==""gotoend:editnetshadvfirewallfirewalladdrulename="RemotePortNum......
  • 由于没有远程桌面授权服务器可以提供许可,远程会话已断开。请跟服务器管理员联系
    原创文档编写不易,未经许可请勿转载,目前仅发布于博客园,其他平台均为非法转载。文档中有疑问的可以邮件联系我文章。邮箱:[email protected]说明文档适用于win2008和win2012,用于远程登录提示“由于没有远程桌面授权服务器可以提供许可,远程会话已断开。请跟服务器管理员联系”报错。......
  • vnc server 下载
    VNCServer即VNC服务器,它用于接收VNCViewer(VNC客户端)的连接请求并传输画面。以下是不同操作系统的VNCServer下载方法:Windows:可以从RealVNC官方网站下载VNCServer,步骤如下:访问RealVNC官网。找到“Windows”选项并点击,根据提示进行下载和安装。macOS:以VNC......