转载译文:使用Apache Guacamole连接虚拟云桌面

使用Apache Guacamole连接虚拟云桌面

Apache Guacamole是一款HTML5应用程序,可通过RDP,VNC和其他协议访问远程桌面。您可以创建一个虚拟云桌面,用户通过Web浏览器即可访问。本指南将介绍如何通过Docker安装Apache Guacamole,并借助其访问托管在Linode上的远程桌面。

安装Docker

这里介绍的方法将安装最新版本的Docker。如需安装特定版本Docker,或需要Docker EE环境,请参阅官方文档寻求帮助。

以下步骤将使用Ubuntu官方软件库安装Docker社区版(Community Edition,CE)。如需在其他Linux发行版上安装,请参阅官网的安装说明

1.卸载系统上可能存在的旧版本Docker:

2.确保您已安装了使用Docker仓库所需的如下依赖:

 

3.添加Docker的GPG密钥:

 

4.验证GPG密钥指纹:

 

您应该看到类似以下内容的输出:

 

5.添加Dockerstable仓库:

 

6.更新软件包索引并安装Docker社区版:

 

7.将受限的Linux用户账户添加到docker用户组:

 

您需要重启Shell会话才能使此更改生效。

8.运行内置的“Hello World”程序以检查Docker是否成功安装:

 

使用MySQL初始化Guacamole身份验证

本指南将使用MySQL作为参考,但PostgreSQL以及MariaDB也同样适用。

1.拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:

 

2.创建数据库初始化脚本以创建用于验证身份的数据表:

 

3.为MySQL的root用户生成一次性密码,可在日志中查看:

 

Docker日志会在终端中打印密码:

 

4.重命名并将initdb.sql移动到MySQL容器中:

 

5.在MySQL的Docker容器中打开bash终端:

 

6.使用一次性密码登录。在重新设定root用户密码之前,终端不会接受任何命令。创建一个新的数据库和用户,如下所示:

 

7.在bash终端中,使用初始化脚本为新数据库创建数据表:

 

验证数据表是否已成功添加。如果guacamole数据库中不存在新建的表,请再次确认之前的步骤均已正确执行。

 

退出bash终端:

 

在浏览器中访问Guacamole

1.在Docker中启动guacd:

 

2.连接容器,以便Guacamole验证存储在MySQL数据库中的凭证:

 

注意

可通过以下命令查看所有正在运行和未运行的Docker容器:

 

3.example-guacamoleexample-guacdexample-mysql都已运行后,请在浏览器中访问localhost:8080/guacamole/。默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。

登录Apache Guacamole

在Linode上搭建VNC服务器

在共享远程桌面之前,必须在Linode上安装桌面环境以及VNC服务器。本指南将使用Xfce桌面,因为Xfce是轻量级的,不会过度消耗系统资源。

1.在Linode上安装Xfce:

 

如果系统资源的限制较少,则可使用Unity桌面作为替代:

 

2.安装VNC服务器。启动VNC服务器时,系统将提示用户输入密码:

 

除了提示输入密码外,系统还会提供“仅可查看”的选项。密码最大长度为8位字符。对于需要更高安全性的设置,我们强烈建议您将Guacamole部署为使用SSL加密的反向代理

 

3.确保在.vnc/xstartup的最后启动桌面环境,否则只会显示灰色屏幕:

 

若使用Unity桌面作为替代,则配置示例如下:

 

在Guacamole中新建连接

Guacamole支持VNC,RDP,SSH和Telnet协议。本章节将介绍如何在浏览器界面中添加新的连接。

1.在连接到VNC服务器之前,创建一个SSH隧道,并将userexample.com替换为Linode的用户名和公网IP:

 

2.在Guacamole控制面板中,点击右上角的下拉菜单,然后选择 Settings 。在 Connections 选项卡中,点击 New Connection 按钮。

在Guacamole中新建连接

3.在 Edit Connection 设置中,输入连接名。在 Parameters 设置中,主机名即为Linode的公网IP地址。端口号为5900 + 显示编号——这里以5901为例。最后输入8位密码。

Guacamole编辑连接设置

官方文档详细描述了所有参数的具体含义。

注意

如果您在同一Linode服务器上有多个VNC连接,请增加连接所用的端口号:5902,5903……以此类推。如果您的远程连接托管在不同的Linode服务器上,则仍应继续使用5901端口。

4.在右上角的下拉菜单中,点击 Home。新建的连接现在应该已经可以使用。

使用快捷键 CTRL + ALT + SHIFT 可以打开剪贴板、键盘/鼠标设置以及导航菜单。

剪贴板及输入设置

5.点击浏览器的后退按钮,回到 Home 菜单。

6.可以连接至其他桌面,并且可在新的浏览器选项卡中同时连接多个远程桌面。

近期连接入口

本指南旨在通过Docker简化安装过程,并演示如何使用Apache Guacamole快速连接至远程桌面。除此之外Apache Guacamole还提供了许多功能,如屏幕录制、Duo双重身份认证、SFTP文件传输等。Guacamole作为Apache的孵化项目,我们期待在不久的将来看到其进一步的发展。

相关资料

有关此主题的其他信息,您可能需要参考以下资源。虽然我们出于帮助您的目的提供了这些资料,但请注意我们无法保证这些站外资源的准确性与时效性。

本文的版权归 苏易北 所有。

赞赏

微信赞赏支付宝赞赏

You may also like...

5 Responses

  1. 路人丙说道:

    这个搭建太复杂了,离Docker即开即用的思想太远了。

  2. HK$说道:

    可以直接用oznu/guacamole这个镜像,都整合好了,我试了可以用

    • 路人丙说道:

      这个可以用,但是版本是很旧的0.90的,远程的时候会偶尔断开,不是很稳定,所以想折腾1.0的。

  3. 路人丙说道:

    请老大帮忙瞅一眼看看能不能解决,Guacamole/Guacamole和Guacamole/guacd 已能运行,但打开是空白页面,目志里是下面这些内容,参考http://guacamole.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-mysql,我怀疑是缺少guacamole-auth-jdbc-mysql-1.0.0.jar,但不知怎下载

    日志:
    16:18:33.319 [http-nio-8080-exec-6] ERROR o.a.g.rest.RESTExceptionMapper – Unexpected internal error:
    ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicatio
    ns link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any pa
    ckets from the server.
    ### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
    ### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
    ### The error occurred while executing a query
    ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any pa
    ckets from the server.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注