如何在 Ubuntu 18.04 LTS 上安装基于 Web 的 Guacamole 远程桌面客户端
本教程适用于这些操作系统版本
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(仿生海狸)
在此页
- 先决条件
- 开始
- 安装所需的依赖项
- 安装 Tomcat 服务器
- 安装鳄梨酱服务器
- 安装鳄梨酱客户端
- 配置鳄梨酱
- 访问鳄梨酱网络界面
- 将 Nginx 配置为鳄梨酱的反向代理
- 结论
如果您是系统管理员并负责管理 Windows 和 Linux 机器,那么您可能经常需要远程桌面客户端软件来管理它们。 Apache Guacamole 是一款免费、开源且基于 Web 的远程桌面应用程序,可让您通过 Web 浏览器访问您的桌面计算机。它是一个无客户端的 HTML5 Web 应用程序,支持 VNC、RDP 和 SSH 等标准协议。您不需要在服务器上安装客户端软件或插件。使用 Guacamole,您可以在具有相同浏览器窗口的多台远程桌面计算机之间轻松切换。
在本教程中,我们将展示如何在 Ubuntu 18.04 LTS 服务器上安装 Apache Guacamole 远程桌面网关。
先决条件
- 一台运行 Ubuntu 18.04 的服务器。
- 在您的服务器上设置了根密码。
入门
在开始之前,最好将系统包更新到最新版本。您可以使用以下命令更新它们:
apt-get update -y
apt-get upgrade -y
更新所有软件包后,重新启动系统以应用更改。
安装所需的依赖项
在开始之前,您需要在系统中安装一些依赖项以从源代码编译 Guacamole。您可以使用以下命令安装所有这些:
apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y
安装所有软件包后,您可以继续下一步。
安装 Tomcat 服务器
接下来,您需要在服务器中安装 Tomcat,以便为通过 Web 浏览器连接到鳄梨酱服务器的用户提供鳄梨酱客户端内容。您可以使用以下命令安装它:
apt-get install tomcat8 tomcat8-admin tomcat8-common tomcat8-user -y
安装 Tomcat 后,您可以继续下一步。
安装鳄梨酱服务器
Guacamole 分为两个组件,guacamole-server 提供 guacd 代理和相关库,以及 guacamole-client 提供由 Tomcat 服务器服务的客户端。默认情况下,Guacamole Server 在 Ubuntu 18.04 默认存储库中不可用。所以你需要从源代码构建它。
首先,使用以下命令下载最新版本的 Guacamole 源代码:
wget http://apachemirror.wuchna.com/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
下载完成后,使用以下命令解压缩下载的文件:
tar -xvzf guacamole-server-1.1.0.tar.gz
接下来,将目录更改为提取的目录并使用以下命令对其进行配置:
cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d
配置成功后,您应该得到以下输出:
Library status:
freerdp2 ............ no
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... no
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ no
libwebsockets ....... no
libwebp ............. yes
wsock32 ............. no
Protocol support:
Kubernetes .... no
RDP ........... no
SSH ........... yes
Telnet ........ no
VNC ........... yes
Services / tools:
guacd ...... yes
guacenc .... yes
guaclog .... yes
FreeRDP plugins: no
Init scripts: /etc/init.d
Systemd units: no
Type "make" to compile guacamole-server.
接下来,运行以下命令来编译 guacamole-server:
make
编译成功完成后,您可以使用以下命令安装它:
make install
安装后,运行以下命令更新已安装库的系统缓存
ldconfig
接下来,启用 Guacamole 服务以在启动时启动并使用以下命令启动它:
systemctl enable guacd
systemctl start guacd
您还可以使用以下命令检查 Guacamole 服务的状态:
systemctl status guacd
您应该得到以下输出:
? guacd.service - LSB: Guacamole proxy daemon
Loaded: loaded (/etc/init.d/guacd; generated)
Active: active (running) since Sat 2020-04-11 14:48:03 UTC; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 2359)
CGroup: /system.slice/guacd.service
??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid
Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon...
Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS
Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon.
Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822
安装鳄梨酱客户端
接下来,您需要在您的服务器上安装 Guacamole 客户端。 Guacamole 客户端是用 Java 编写的,并且是跨平台的。这将构成最终呈现给您的 HTML5 应用程序。
首先,使用以下命令下载 Guacamole 二进制文件:
wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war
下载完成后,将其复制到 /etc/guacamole 目录:
mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war
接下来,使用以下命令创建鳄梨酱客户端到 Tomcat webapps 目录的符号链接:
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
最后,重新启动 Tomcat 和 Guacamole 服务以部署新的 Web 应用程序
systemctl restart tomcat8
systemctl restart guacd
配置鳄梨酱
安装 Guacamole 后,您需要配置用户和连接才能正常使用 Guacamole。
首先,创建一个名为 guacamole.properties 的 Guacamole 主配置文件。
nano /etc/guacamole/guacamole.properties
添加以下行:
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
保存并关闭文件。然后,使用以下命令创建一个 lib 和 extensions 目录:
mkdir /etc/guacamole/{extensions,lib}
接下来,将guacamole主目录环境变量设置为tomcat8默认配置文件。
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat8
鳄梨酱的默认身份验证方法从一个名为 user-mapping.xml 的文件中读取所有用户和连接。该文件将定义允许访问 Guacamole Web UI 的用户、要连接的服务器以及连接方法。
首先,使用以下命令为密码生成 md5 哈希:
echo -n yoursecurepassword | openssl md5
您应该得到以下输出:
(stdin)= 55b38b03e7587a45fd886977842ff9b8
注意:记住这个散列,您需要在 user-mapping.xml 文件中指定它。
接下来,使用以下命令创建一个新的 user-mapping.xml:
nano /etc/guacamole/user-mapping.xml
添加以下行:
<user-mapping>
<authorize
username="admin"
password="55b38b03e7587a45fd886977842ff9b8"
encoding="md5">
<connection name="Ubuntu-Server">
<protocol>ssh</protocol>
<param name="hostname">192.168.0.150</param>
<param name="port">22<param>
<param name="username">root</param>
</connection>
<connection name="Windows Server">
<protocol>rdp</protocol>
<param name="hostname">192.168.0.100</param>
<param name="port">3389</param>
</connection>
</authorize>
</user-mapping>
完成后保存并关闭文件。然后,重新启动 Tomcat 和 Guacamole 服务以应用更改:
systemctl restart tomcat8
systemctl restart guacd
访问鳄梨调味酱 Web 界面
此时,Guacamole 服务器已安装和配置。现在,是时候通过网络浏览器访问它了。
打开您的 Web 浏览器并输入 URL http://your-server-ip:8080/guacamole/。您将被重定向到 Apache Guacamole 登录页面:

提供您在 user-mapping.xml 文件中指定的用户名和密码,然后单击“登录”按钮。您应该会看到包含所有连接的 Apache Guacamole 默认仪表板:

现在,单击 Ubuntu-Server,系统将提示您输入您在 user-mapping.xml 中定义的用户的密码,如下所示:

提供您的系统用户密码,然后按 Enter。您将登录到 Ubuntu 服务器,如下所示:

将 Nginx 配置为鳄梨酱的反向代理
接下来,您需要将 Nginx 配置为反向代理以访问 Guacamole 仪表板。首先,使用以下命令安装 Nginx Web 服务器:
apt-get install nginx -y
安装后,创建一个新的 Nginx 虚拟主机配置文件:
nano /etc/nginx/sites-available/guacamole.conf
添加以下行:
server {
listen 80;
server_name your-server-ip;
access_log /var/log/nginx/guac_access.log;
error_log /var/log/nginx/guac_error.log;
location / {
proxy_pass http://your-server-ip:8080/guacamole/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cookie_path /guacamole/ /;
}
}
完成后保存并关闭文件。然后,使用以下命令启用 Nginx 虚拟主机:
ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/
接下来,使用以下命令检查 Nginx 是否存在任何语法错误:
nginx -t
您应该得到以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重启 Nginx 服务以应用更改:
systemctl restart nginx
现在,您可以使用 URL http://your-server-ip 访问 Guacamole Web 界面。
结论
恭喜!您已经在 Ubuntu 18.04 服务器上成功安装了 Guacamole 远程桌面网关。您现在可以添加另一个要通过 Web 浏览器远程管理的远程服务器。