使管理员能够连接到他们的服务器的应用程序并不缺乏。 但是,至少可以说,为不同的目的使用不同的应用程序会变得很忙。
值得庆幸的是,有一种更聪明的做事方式——它自 2013 年就已经存在。
Enter: Apache 鳄梨。
它是一个支持 RDP、VNC 和 SSH 协议的无客户端远程桌面网关。 关于它的最好的事情是,一旦设置好,您只需要一个网络浏览器即可使用它。 使用这个开源工具不需要任何扩展或工具!
这是设置的快速指南 Apache 鳄梨。
安装 Guacamole 的依赖项
在开始安装软件包依赖项之前,请记住以下先决条件:
- Linux 服务器(我们使用的是 Ubuntu 20.04 服务器)
- 根/admin 使用权
- MariaDB 数据库
- 连接到服务器IP的域名
鳄梨酱分为两部分:服务器和客户端。 必须使用源代码手动安装服务器。 客户端是在 Tomcat 下运行的 Java serverlet web 应用程序前端。
要安装依赖项,请启动终端,连接到您的服务器,然后运行以下命令:
sudo apt 安装 build-essential libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1 -dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev -y |
您还需要为 Web 应用程序安装 Tomcat 9:
sudo 易于安装tomcat9 -y |
接下来的两个命令将分别启动和启用 Tomcat 9,并验证其状态:
sudo systemctl enable –now tomcat9 sudo 系统状态tomcat9 |
编译和安装鳄梨酱服务器
首先运行以下 wget 命令以下载所需的源代码:
wget https://dlcdn.apache.org/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz |
现在您的计算机上已经有了该文件,请使用以下命令将其解压缩:
tar -xzf 鳄梨酱服务器-1.4.0.tar.gz |
接下来,将您的目录更改为提取的文件,如下所示:
cd 鳄梨酱服务器-1.4.0/ |
使用此脚本设置服务器:
./configure –with-systemd-dir=/etc/systemd/system/ –disable-dependency-tracking |
上面命令中的第一个选项自动将脚本安装到 /etc 中提到的目录。 第二个选项禁用依赖跟踪,缩短构建时间。
输出将向您显示 Guacamole 版本、库状态、协议支持以及 Guacamole 附带的工具/服务。 如果您看到此输出,则说明您正在安装 Guacamole。
下面的命令将编译 Guacamole 服务器并将二进制文件安装在 usr/local/bin 和 usr/local/sbin 中。 这些库将安装在 usr/local/lib 中。
制作 安装 |
然后,使用以下命令更新系统库的符号链接并重新加载 systemd:
sudo 配置文件 sudo systemctl守护进程重新加载 |
最后,启动并启用 Guacamole 服务器并使用以下命令验证其状态:
sudo systemctl enable –now guacd sudo systemctl状态guacd |
您应该看到指示 guacd 正在运行的输出。
创建配置并设置目录
Guacamole 安装需要一个配置目录才能工作。 创建 /etc/guacamole/ 目录是 Guacamole 存储配置文件的地方。
下面的命令将创建一个环境变量“GUACAMOLE_HOME”并为 Tomcat 配置设置它,确保 Tomcat 始终加载 Guacamole 配置目录。
echo GUACAMOLE_HOME=/etc/guacamole >> /etc/default/tomcat9 |
运行下面的命令将创建实际的配置目录,以及“extensions”和“lib”目录。
mkdir -p /etc/guacamole/{extensions,lib} |
最后,您可以像这样创建配置文件:
触摸/etc/guacamole/{guacamole.properties,guacd.conf} |
设置 MariaDB 数据库
首先以 root 用户身份登录到 MariaDB shell:
mysql -u root -p |
然后,创建一个新的数据库,并退出 shell:
创建数据库 guacamole_db; 出口 |
要继续,您需要 Guacamole 的数据库身份验证扩展。 运行它来下载它:
wget https://dlcdn.apache.org/guacamole/1.4.0/binary/guacamole-auth-jdbc-1.4.0.tar.gz |
提取它并将目录切换到提取的文件,如下所示:
tar -xf 鳄梨酱-auth-jdbc-1.4.0.tar.gz cd 鳄梨酱-auth-jdbc-1.4.0/mysql/ |
将 Guacamole MariaDB 数据库方案导入到新建的数据库中:
ls cat 模式/*.sql | mysql -u root -p guacamole_db |
您将需要输入 MariaDB root 用户的密码。 完成后,运行以下命令再次登录到 MariaDB shell。
mysql -u root -p |
我们再次登录,为 Guacamole 创建一个新的 MariaDB 用户。 运行这些,你会很高兴去:
创建用户 ‘guacamole_user’@’localhost’ IDENTIFIED BY ‘StrongPassword’; GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO ‘guacamole_user’@’localhost’; 冲洗特权; 出口 |
安装数据库身份验证扩展和 MySQL/J 库
有问题的扩展使您能够使用数据库身份验证设置 Guacamole。 虽然我们使用的是 MariaDB,但您可以使用 PostgreSQL。
使用这些命令将工作目录更改为所需的 mysql 文件夹,然后列出文件:
cd 鳄梨酱-auth-jdbc-1.4.0/mysql/ ls -lah |
剩下要做的就是使用以下命令安装扩展:
cp guacamole-auth-jdbc-mysql-1.4.0.jar /etc/guacamole/extensions/guacamole-auth-jdbc-mysql.jar |
我们还必须安装一个 MySQL/J 库来连接到 MariaDB。 让我们从下载它开始:
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java_8.0.28-1ubuntu20.04_all.deb |
接下来,使用 dpkg 命令安装连接器:
dpkg -i mysql-connector-java_8.0.28-1ubuntu20.04_all.deb |
在我们继续之前,将连接器库复制到 /etc/guacamole 中的 /lib 文件夹,以便 Guacamole 可以使用它连接到 MariaDB:
cp /usr/share/java/mysql-connector-java-8.0.28.jar /etc/guacamole/lib/mysql-connector.jar |
将鳄梨酱与 MariaDB 连接起来
虽然您已经安装了扩展和连接器,但除非您使用数据库身份验证,否则它们不会执行任何操作。 您将通过 guacamole.properties 文件中的配置应用身份验证。
使用任何文本编辑器打开 /etc/guacamole/guacamole.properties 并将以下配置粘贴到文件中:
mysql 主机名:localhost mysql端口:3306 mysql数据库:guacamole_db mysql 用户名:guacamole_user mysql密码:StrongPassword |
接下来,您必须在 /etc/guacamole/guacd.conf 中设置 guacd 绑定 IP 地址。 将以下内容放入文件中:
[server] 绑定主机 = 0.0.0.0 绑定端口 = 4822 |
运行以下命令以应用您所做的更改:
sudo systemctl 重新启动 guacd sudo systemctl 重启 tomcat9 |
安装鳄梨酱客户端
您已经到达鳄梨调味酱设置的倒数第二段。 首先下载预构建的 Guacamole 客户端包,如下所示:
wget |
然后,运行这些命令重命名包并将其移动到 /var/lib/tomcat9 中的 webapps 目录:
mv 鳄梨酱-1.4.0.war 鳄梨酱.war cp guacamole.war /var/lib/tomcat9/webapps ls /var/lib/tomcat9/webapps |
移动文件是使客户端可从路径 URL 访问所必需的。
配置 Apache 作为客户端的反向代理
在你最终开始使用鳄梨酱之前,你必须安装和配置一个带有虚拟主机配置的网络服务器。 这个想法是使用网络服务器作为客户端的反向代理。
首先使用您的域名获取免费的 LetsEncrypt SSL 证书 certbot 文档. 接下来,使用这个命令安装 Apache 网络服务器:
sudo apt 安装 apache2 -y |
此命令将为反向代理启用模块:
sudo a2enmod 代理 proxy_wstunnel proxy_http ssl 重写 |
创建一个虚拟主机配置文件 /etc/apache2/sites-available/guacamole.conf 并粘贴下面的配置。 请记住,您必须更改 example.io 域名与您拥有的域名。 SSL 证书的路径也是如此。
<虚拟主机 *:80> 服务器名称 example.io 服务器别名 www.example.io 永久重定向 / https://example.io/ <虚拟主机 *:443> 服务器名称 example.io 服务器别名 www.example.io <如果“%{HTTP_HOST} == 'www.example.io'”> 永久重定向 / https://example.io/
错误日志 /var/log/apache2/example.io-error.log 自定义日志 /var/log/apache2/example.io-access.log 合并 SSLEngine 开启 SSLCertificateFile /etc/letsencrypt/live/example.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.io/privkey.pem <位置/鳄梨酱/> 订单允许、拒绝 允许所有 ProxyPass https://127.0.0.1:8080/guacamole/flushpackets=on ProxyPassReverse https://127.0.0.1:8080/guacamole/
<位置/guacamole/websocket-tunnel> 订单允许、拒绝 允许所有 ProxyPass ws://127.0.0.1:8080/guacamole/websocket-tunnel ProxyPassReverse ws://127.0.0.1:8080/guacamole/websocket-tunnel
|
激活配置并通过运行验证它:
a2ensite 鳄梨酱.conf apachectl 配置测试 |
在 /etc/tomcat9/server.xml 中打开 Tomcat 配置并将以下内容粘贴到
internalProxies=”127.0.0.1″ remoteIpHeader=”x-forwarded-for” remoteIpProxiesHeader=”x-forwarded-by” protocolHeader=”x-forwarded-proto”/> |
通过运行应用更改:
sudo systemctl 重启apache2 sudo systemctl 重启 tomcat9 |
就是这样,你已经设置了鳄梨酱! Web 应用程序在端口 8080 上的 Tomcat 下运行,路径为 /guacamole。