Apache Guacamole是一款让用户通过Web浏览器从任何地方访问远程桌面控制工具。Apache Guacamole具有高度可扩展性和灵活性,支持多种不同的远程桌面协议和虚拟化技术。Apache Guacamole官方版还提供了安全性和性能优化选项,使用户能够轻松管理和配置远程桌面连接。
Apache Guacamole软件简介
Apache Guacamole是一个免费的远程桌面应用程序,允许用户通过使用web浏览器从任何地方访问他们的桌面。Apache鳄梨色拉酱被称为无客户端远程桌面网关,因为它不需要使用客户端软件。一旦下载完毕,由于HTML5的存在,你所需要的只是一个网页浏览器来访问你的桌面。你的电脑不再依赖于某个特定的位置或设备,文件可以方便地存储在云中。它也是免费和开源的,构建在一个有良好文档记录的API上。
Apache Guacamole软件特色
对 RDP 音频输入支持的主要修复
根据远程桌面中使用的应用程序,Guacamole 对 RDP 的音频输入支持存在与音频缓冲区行为和大小变化相关的质量问题。如果应用程序使用的音频后端不能调整偶尔爆破的音频数据包,远程桌面收到的任何音频数据包如果超过了剩余的缓冲区空间,就会被丢弃,导致可听到的“咔嚓声”比预期更快的播放。
这一点现在已经得到修复。Guacamole 将自动节制其发送至远程桌面的数据量,以避免耗尽远程缓冲空间,确保远程桌面内的应用程序收到的音频与 Guacamole 通过浏览器收到的音频相同。
RDP 支持多点触摸事件
除了 Guacamole 对模拟触摸设备上的鼠标的既定支持外,在支持和启用的情况下,现在可以将多点触摸事件传递给远程桌面服务器。
RDP 通过其 "RDPEI" 通道支持多点触摸。如果在 Guacamole RDP 连接上启用了触摸功能,与 Guacamole 显示器的触摸交互将直接影响远程桌面会话中支持触摸的应用程序,而不是被转化为鼠标事件。
支持辅助 SSO 供应商
Guacamole 对单点登录的支持历来都是全有或全无的,要么所有用户都使用 SSO 进行认证,要么根本没有。现在的情况不再是这样了。Guacamole 现在可以被配置为除了 SSO 之外还允许正常的用户名/密码认证,并且可以同时使用多个 SSO 供应商。
Apache Guacamole使用方法
udo apt update
sudo apt install -y gcc nano vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev build-essential libpango1.0-dev libssh2-1-dev libvncserver-dev
libtelnet-dev libpulse-dev libvorbis-dev libwebp-dev
接下来,安装FreeRDP2:
我们将安装remmina PPA中托管的FreeRDP2版本如下:
sudo add-apt-repository ppa:remmina-ppa-team/remmina-next-daily
sudo apt update
sudo apt install freerdp2-dev freerdp2-x11 -y
安装OpenSL 1.1.l。这是因为最新的OpenSL已经放弃了Guacamole仍然使用的一些功能。如果您的OpenSSL高于3.0.我们建议您卸载它,然后执行以下操作:
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz -P ~
sudo tar -xzf openssl-1.1.1l.tar.gz
cd ~/openssl-1.1.1l
./config
make
sudo make install
sudo cp /usr/local/bin/openssl /usr/bin
sudo ldconfig
确认OpenSL的安装:
$ openssl version
OpenSSL 1.1.1l
Guacamole对我们的包和库的要求应该完成,现在我们应该开始安装它了。
步骤2:安装Apache Tomcat
在此步骤中,我们将安装Apache Tomcat Java Servlet容器将运行Guacamole Java 为Guacamole提供war文件 Java客户端提供服务。因为是Java,首先要安装Java:
sudo apt install openjdk-17-jdk -y
安装后,您可以检查安装版本
$ java --version
openjdk 17.0.3
OpenJDK Runtime Environment (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1
OpenJDK 64-Bit Server VM (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1 mixed mode, sharing)
1、tomcat系统用户创建tomcat系统
建议使用系统中除root用户以外的用户操作应用程序。对于tomcat,我们将创建一个用于操作tomcat应用程序的用户。
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
2、获取Apache Tomcat
您可以从官方Tomcat下载页面获得Apache Tomcat二进制发行版。在选择本文时,新的稳定版本是9.0.x:
VER="9.0.63"
wget https://downloads.apache.org/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz -P ~
下载完成后,继续将tar文件解压缩到/opt/tomcat目录如下:
sudo mkdir -p /opt/tomcat
sudo tar -xzf apache-tomcat-${VER}.tar.gz -C /opt/tomcat/
sudo mv /opt/tomcat/apache-tomcat-${VER} /opt/tomcat/tomcatapp
因为tomcat用户将运行apachee tomcat,所以我们必须给它一个访问/opt/tomcat目录所需的权限。操作以下命令以实现此操作:
sudo chown -R tomcat: /opt/tomcat
然后使/opt/tomcat/tomcatapp/bin目录中的所有shell脚本都可以执行:
sudo find /opt/tomcat/tomcatapp/bin/ -type f -iname "*.sh" -exec chmod +x {} ;
接下来,我们准备添加tomcat的systemd服务,这样我们就可以像服务器中的其他服务一样轻松地管理它的生命周期。要做到这一点,我们必须创建一个新的文件,并填写正确的配置,如下所示,操作命令和内容如下:
$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/tomcatapp"
Environment="CATALINA_HOME=/opt/tomcat/tomcatapp"
Environment="CATALINA_PID=/opt/tomcat/tomcatapp/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/tomcatapp/bin/startup.sh
ExecStop=/opt/tomcat/tomcatapp/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
正如你所看到的,我们的新systemd文件是干净的。保存它,然后重新加载保护程序,以便Systemd保护程序读取它:
sudo systemctl daemon-reload
然后启动服务:
sudo systemctl enable --now tomcat
操作如下命令:
$ systemctl status tomcat
返回信息大致如下:
tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running)
在默认情况下,Tomcat侦听端口8080,我们需要通过允许防火墙上的端口远程访问应用程序。如下所示:
sudo ufw allow 8080/tcp
步骤3:Guacamole服务器从源代码构建
guacamole服务器包含guacamole连接到远程桌面所需的所有本地服务器端组件。它提供了一个通用的C库libguac,所有其他机器组件都依赖于它,每个支持协议的独立库,以及代理保护程序guacd,guacamole的核心。
2、本站所有文章、图片、资源等如果未标明原创,均为收集自互联网公开资源;分享的图片、资源、视频等,出镜模特均为成年女性正常写真内容,版权归原作者所有,仅作为个人学习、研究以及欣赏!如有涉及下载请24小时内删除;
3、如果您发现本站上有侵犯您的权益的作品,请与我们取得联系,我们会及时修改、删除并致以最深的歉意。邮箱: i-hu#(#换@)foxmail.com