在 CentOS 8/RHEL 8 上安装和使用 Guacamole 远程桌面 |在 CentOS 8/RHEL 8 上安装和使用 Guacamole 远程桌面 |在 CentOS 8/RHEL 8 上安装和使用 Guacamole 远程桌面 |在 CentOS 8/RHEL 8 上安装和使用 Guacamole 远程桌面 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 CentOS 8/RHEL 8 上安装和使用 Guacamole 远程桌面 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Apache Guacamole 是一种无客户端远程桌面网关,支持 VNC、RDP 和 SSH 等标准协议。借助 HTML5,一旦在服务器上安装了 Guacamole,您只需使用 Web 浏览器即可访问桌面。

Guacamole 分为两部分:guacamole-server,它提供 guacd 代理和相关库;以及 guacamole-client,它提供由 servlet 容器提供服务的客户端。在大多数情况下,您需要构建的唯一源是 guacamole-server,从项目网站下载最新的 guacamole.war 将足以提供客户端。

Ubuntu 上的安装:在 Ubuntu 上安装和使用 Guacamole 远程桌面

第1步:服务器准备

启用 EPEL 和 PowerTools 存储库:

### CentOS 8 Stream ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf config-manager --set-enabled powertools

### RHEL 8 ###
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

安装并更新系统。

sudo dnf update -y

Apache Guacamole 有许多依赖项,我们将在这一步中处理其中的大部分。您会注意到我使用了 Devel 存储库中的一些包,因为从官方存储库获取它们是一个挑战。一旦我们需要的软件包全部安装完毕,就将其禁用。

sudo dnf --enablerepo=devel install vim wget unzip make cmake wget gcc zlib-devel compat-openssl10 cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libtheora opus lame-libs libwebsockets-devel libtelnet-devel

同意安装依赖项:

...
Transaction Summary
======================================================================================================================================================================================================
Install  153 Packages

Total download size: 48 M
Installed size: 153 M
Is this ok [y/N]: y

第 2 步:安装 Apache Tomcat

满足先决条件后,运行以下命令来安装 Apache Tomcat Java serverlet 容器,该容器为 Guacamole Java 客户端和所有必需的依赖项提供服务。由于是Java语言,所以我们先安装Java。

安装 OpenJDK 11

运行以下命令来获取 java-11-openjdk。

sudo yum install java-11-openjdk-devel

创建文件并设置 Java 环境变量。

$ sudo vim /etc/profile.d/java11.sh
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

获取文件即可开始使用,无需注销。

source /etc/profile.d/java11.sh

在 CentOS 8/RHEL 8 上安装 Apache Tomcat

Tomcat 存在于默认的 CentOS 8/RHEL 8 存储库中,可以使用以下命令轻松下载:

sudo yum install tomcat

安装后,启动并启用该服务:

sudo systemctl enable --now tomcat

Tomcat 应该可以愉快地运行。

$ systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-08-17 06:13:54 EDT; 6s ago
 Main PID: 63201 (java)
    Tasks: 27 (limit: 23505)
   Memory: 72.7M
   CGroup: /system.slice/tomcat.service
           └─63201 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/b>

Aug 17 06:13:55 localhost.localdomain server[63201]: 17-Aug-2023 06:13:55.291 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1>
Aug 17 06:13:55 localhost.localdomain server[63201]: 17-Aug-2023 06:13:55.291 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfil>
....

第 3 步:从源代码构建鳄梨酱服务器

guacamole-server 包含 Guacamole 连接到远程桌面所需的所有本机服务器端组件。它提供了一个通用的 C 库 libguac(所有其他本机组件都依赖该库),以及每个支持的协议的单独库,以及一个代理守护进程 guacd(Guacamole 的核心)。

下载最新稳定版本的 guacamole-server

cd ~/
VER=1.5.3
wget https://archive.apache.org/dist/guacamole/$VER/source/guacamole-server-$VER.tar.gz

提取下载的存档。

tar -xvf guacamole-server-$VER.tar.gz

切换到解压后的目录。

cd guacamole-server-*/

配置构建环境。运行configure将确定您的系统上有哪些库可用,并将根据您实际安装的内容选择适当的组件进行构建。

./configure --with-init-dir=/etc/init.d

然后编译鳄梨酱服务器。当所有组件都被编译时,相当多的输出将在屏幕上滚动

make

一切完成后,您剩下要做的就是输入“sudo make install”来安装构建的组件,然后输入“ldconfig”来更新系统的缓存安装的库。

sudo make install

更新系统已安装库的缓存。

sudo ldconfig

创建所需的鳄梨酱目录:

sudo mkdir -p /etc/guacamole/{extensions,lib}

为 guacd 创建配置文件:

$ sudo vim /etc/guacamole/guacd.conf
[daemon]
pid_file = /var/run/guacd.pid
#log_level = debug

[server]
#bind_host = localhost
bind_host = 127.0.0.1
bind_port = 4822

#[ssl]
#server_certificate = /etc/ssl/certs/guacd.crt
#server_key = /etc/ssl/private/guacd.key

刷新systemd以找到安装在/etc/init.d/目录中的guacd(鳄梨酱代理守护进程)服务。

sudo systemctl daemon-reload

重新加载后,启动 guacd 服务。

sudo systemctl start guacd
sudo systemctl enable guacd

要让笑容挂在脸上,请检查其状态。

$ systemctl status guacd
● guacd.service - LSB: Guacamole proxy daemon
   Loaded: loaded (/etc/rc.d/init.d/guacd; generated)
   Active: active (running) since Thu 2023-08-17 06:18:06 EDT; 7s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 23505)
   Memory: 10.4M
   CGroup: /system.slice/guacd.service
           └─76310 /usr/local/sbin/guacd -p /var/run/guacd.pid

Aug 17 06:18:06 localhost.localdomain systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 17 06:18:06 localhost.localdomain guacd[76307]: Starting guacd:
Aug 17 06:18:06 localhost.localdomain guacd[76308]: Starting guacd:
Aug 17 06:18:06 localhost.localdomain guacd[76308]: uacd[76308]: INFO:        Guacamole proxy daemon (guacd) versio
Aug 17 06:18:06 localhost.localdomain systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 17 06:18:06 localhost.localdomain guacd[76307]: uacd[763
Aug 17 06:18:06 localhost.localdomain guacd[76310]: Listening on host 127.0.0.1, port 4822

第 4 步:安装鳄梨酱 Web 应用程序

Guacamole 的部署涉及两个关键文件:guacamole.war(包含 Web 应用程序的文件)和 guacamole.properties(Guacamole 的主要配置文件)。设置鳄梨酱的推荐方法是将这些文件放置在标准位置,然后创建指向它们的符号链接,以便 Tomcat 可以找到它们。

guacamole-client 包含 Guacamole 的所有 Java 和 Maven 组件(guacamole、guacamole-common、guacamole-ext 和 guacamole-common-js)。这些组件最终构成了 Web 应用程序,该应用程序将为连接到服务器的用户提供 HTML5 Guacamole 客户端。该 Web 应用程序将代表连接的用户连接到 guacd(鳄梨酱服务器的一部分),以便为他们提供有权访问的任何远程桌面服务。

安装鳄梨酱客户端

鳄梨酱客户端以二进制形式提供。要安装它,只需从如下所示的 Guacamole 二进制文件下载页面中提取它,将其复制到 /etc/guacamole/ 目录并同时重命名。

cd ~
VER=1.5.3
wget https://archive.apache.org/dist/guacamole/$VER/binary/guacamole-$VER.war

将文件移至 Tomcat webapps 目录:

sudo mv guacamole-$VER.war /var/lib/tomcat/webapps/guacamole.war

第 5 步:配置鳄梨酱服务器

安装Guacamole服务器守护程序后,您需要在/etc/guacamole/guacamole.properties配置文件下定义Guacamole客户端如何连接到Guacamole服务器(guacd)。在此配置中,您只需定义鳄梨酱服务器主机名、端口、用户映射配置文件和身份验证提供程序。

GUACAMOLE_HOME 是 Guacamole 配置目录的名称,默认位于 /etc/guacamole。所有配置文件、扩展等都驻留在该目录中。

创建 GUACAMOLE_HOME 环境变量

echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat
echo "export GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/profile

创建 /etc/guacamole/guacamole.properties 配置文件并填充它,如下所示:

$ sudo vim /etc/guacamole/guacamole.properties
guacd-hostname: localhost
guacd-port:    4822

第 6 步:设置鳄梨酱身份验证方法

Guacamole 的默认身份验证方法从名为 user-mapping.xml 的单个文件中读取所有用户和连接。在此文件中,您需要定义允许访问 Guacamole Web UI 的用户、要连接的服务器以及连接方法。

但上述方法仅推荐用于测试目的。对于生产,我们将使用数据库身份验证,这使得管理用户和连接变得更加容易。

首先,确保您已安装 MariaDB/MySQL。这可以通过遵循以下指南来完成:

  • 在 CentOS/RHEL 上安装 MariaDB
  • 在 CentOS/RHEL 上安装 MySQL

安装完成后,登录数据库服务器:

sudo mysql -u root -p

创建 Guacamole 使用的用户和数据库:

CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'Passw0rd!';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
FLUSH PRIVILEGES;
QUIT

现在下载 Guacamole 使用的 MySQL Connector/J。

VER=8.1.0
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-$VER.tar.gz

解压文件并将其复制到 /etc/guacamole/lib/ 目录::

tar -xf mysql-connector-j-*.tar.gz
sudo cp mysql-connector-j-$VER/mysql-connector-j-$VER.jar /etc/guacamole/lib/

数据库身份验证还需要 JDBC 身份验证插件。

VER=1.5.3
wget https://downloads.apache.org/guacamole/$VER/binary/guacamole-auth-jdbc-$VER.tar.gz

解压并复制到扩展目录:

tar -xf guacamole-auth-jdbc-$VER.tar.gz
sudo mv guacamole-auth-jdbc-$VER/mysql/guacamole-auth-jdbc-mysql-$VER.jar /etc/guacamole/extensions/

我们现在需要导入鳄梨酱的数据库架构。首先切换到以下目录:

cd guacamole-auth-jdbc-*/mysql/schema

运行以下命令将架构导入数据库:

cat *.sql | sudo mysql -u root -p guacamole_db

您需要输入 MySQL 用户的 root 密码。导入后,我们将修改鳄梨酱配置:

sudo vim /etc/guacamole/guacamole.properties

现在将这些行添加到文件中:

###MySQL properties
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: Passw0rd!

如果您正在运行防火墙并且尚未允许这些端口,那么这是快速执行此操作的机会,如下所示:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

使用以下命令配置 SELinux 上下文:

sudo ausearch -c 'Catalina-utilit' --raw | audit2allow -M my-Catalinautilit
sudo semodule -X 300 -i my-Catalinautilit.pp
sudo ausearch -c 'java' --raw | audit2allow -M my-java
sudo semodule -X 300 -i my-java.pp
sudo setsebool -P domain_can_mmap_files 1
sudo setsebool -P tomcat_can_network_connect_db 1
sudo /sbin/restorecon -v /var/lib/tomcat/webapps/guacamole.war

重新启动服务:

sudo systemctl restart tomcat guacd

第 7 步:获取鳄梨酱 Web 界面

到目前为止,我们已经设置好了一切,因此我们应该准备好访问我们一直在努力启动的应用程序。要访问 Guacamole 的网络界面,只需将浏览器指向http://ip-or-domain-name:8080/guacamole,您就会看到一个登录屏幕,如下所示如下图所示:

在此页面上,您将使用默认信用进行身份验证;用户名:guacadmin 和密码:guacadmin。登录后,您可以创建一个新的管理员用户并删除旧的默认用户。

为此,请转至设置 ->用户->新用户。

为用户提供所有必需的权限并创建它们。然后您可以注销并使用新用户登录。然后继续并删除旧的管理员用户:

在鳄梨酱上建立联系

现在要建立远程连接,您需要在设置 ->连接->新连接下创建它们

在此提供所有必需的详细信息。请记住在参数->网络下提供远程主机的主机名/IP 和端口。

如果主机之间有 SSH 密钥身份验证,则需要调整远程主机上的 SSH 配置才能使 SSH 连接正常工作:

$ sudo vim /etc/ssh/sshd_config
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

在远程主机上重新启动 SSH 服务:

sudo systemctl restart sshd

现在添加的连接将出现在您的 Guacaome 主页上,如下所示:

您可以通过单击启动任何连接!

您还可以使用其他身份验证方法,如下所示:

  • 鳄梨酱与 Active Directory、OTP 和 Duo 2FA 集成

要配置 SSL,请查看我们的文章:

  • 使用 Let's Encrypt SSL 为鳄梨酱配置 Nginx 代理

结束语

由于 Guacamole 客户端是一款 HTML5 Web 应用程序,因此您计算机的使用不受任何设备或位置的限制。只要您可以访问网络浏览器,您就可以访问您的计算机。通过 Guacamole 和托管在云中的桌面操作系统,您可以将 Guacamole 的便利性与云计算的弹性和灵活性结合起来。检查一下并利用它的灵活性和便利性,尤其是在这个我们大多数人都在家工作的季节。

参考文献:

  • Apache 鳄梨酱网页
  • Apache 鳄梨酱文档

感谢您持续的支持,请从下面分享的精美指南中获取其他想法,保持乐趣。

  • 在 Linux CLI 上创建 SSH 隧道的简单方法
  • 在 Windows Server 上安装和配置 OpenSSH 服务器
  • 如何在 CentOS/RHEL 7/8 上设置 SSH 的两因素 (2FA) 身份验证
©2015-2025 Norria support@norria.com