写在前面:
说明:Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. We call it clientless because no plugins or client software are required.
Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.
中文翻译过来的是鳄梨酱,总之是就是Linux 下一个网关服务,可以将RDP,SSH,VNC,TELNET等常用的远程协议转换成HTTP协议,客户端通过浏览器(H5支持)访问,即可进行远程控制。
一.安装环境
先说一下博主的环境
1.centos 7.8 :
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.8.2003 (Core)
Release: 7.8.2003
Codename: Core
Distributor ID: CentOS
Description: CentOS Linux release 7.8.2003 (Core)
Release: 7.8.2003
Codename: Core
2.安装的gucamole-server 版本 guacamole-server 1.4.0
二.安装 guacamole-server
说明:gucamole-server 中包含gucamole连接到远程桌面所需要的所有本机服务器组件。提供一个通用的C库,libguac,所有其他本机组件都是依赖它的,以及每个支持的协议单独库,以及guacam,gucamole的核心。guacd是guacamole服务器上运行的代理守护程序,接受通过guacamole web应用程序进行隧道传输的用户连接,然后代表他们连接到远程桌面。构建gucad会创建一个可执行的guacd,可以手动执行,或者,也可以开机自启动。
1.首先下载源码文件
下载地址 获取各个版本,此处采用guacamole-server-1.4.0 作为示例。
1.wget https://apache.org/dyn/closer.lua/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz?action=download // 下载 2.tar -xzvf guacamole-server-1.4.0.tar.gz // 解压
2.安装gucamole-server的依赖环境 (需要注意 如果使用的是非centos的虚拟机 需要参考官网来配置依赖项)
必须安装
- cairo-devel:libguac 使用 Cairo 进行图形渲染。如果没有安装 Cairo,鳄梨酱将无法运行。
- libjpeg-turbo-devel:ibguac 使用 libjpeg-turbo 来提供 JPEG 支持。如果没有这个库,鳄梨酱就不会构建。
- libjpeg-devel:如果 libjpeg-turbo 在您的平台上不可用,并且您不希望从源代码构建它,那么libjpeg也可以工作,尽管它不会那么快。
- libpng-devel:libpng 被 libguac 用来编写 PNG 图像,这是 Guacamole 协议使用的核心图像类型。没有 libpng,鳄梨酱就无法运行。
- libtool:libtool 在构建过程中使用。libtool 创建 Guacamole 所需的编译库。
- libuuid-devel:libguac 使用 libuuid 为每个 Guacamole 用户和连接分配唯一的内部 ID。这些唯一 ID 是连接共享支持的基础。
-
uuid-devel:如果 libuuid 不可用, 也可以使用OSSP UUID库。
yum install gcc // 安装编译环境 yum install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel可选安装
gucamole的可选项依赖项决定了gucamole-server的哪些部分将被构建。这包括对各种远程桌面协议的支持。以及这些协议的任何其他功能:
VNC支持取决于libvncclient库,它是libVNCServer的一部分。pulseaudio 提供VNC的实验性音频功能
yum install libvncserver-devel pulseaudio-libs-devel
RDP支持取决于最新版本的FreeRDP(1.0或更高版本,但请不要使用git的非发行版本)。
yum install freerdp-devel
SSH支持依赖于libssh2 SSH支持。OpenSSL 提供对SSL和TLS的支持。Pango 一种字体渲染和文本布局库,由Guacamole的内置终端仿真器使用。
yum install libssh2-devel openssl-devel pango-devel
Telnet依赖于libtelnet和 Pango。(libtelnet-devel不在CentOS7官方yum源内,可先安装epel-release源)
yum install epel-release yum install libtelnet-devel pango-devel
guacenc(将屏幕录制转换为视频)实用程序 依赖于FFmpeg,并且仅在安装了FFmpeg提供的libavcodec,libavutil和 libswscale库时才构建 。(ffmpeg-devel不在CentOS7官方yum源内,可先安装DEXTOP源) 不需要屏幕录制功能时,可不安装。
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm yum install ffmpeg-devellibvorbis支持Ogg Vorbis - 一种免费且开放的声音压缩标准。如果安装了libguac,将支持Ogg Vorbis,支持音频的协议将尽可能使用Ogg Vorbis压缩。否则,声音将仅编码为WAV(未压缩),并且仅在您的浏览器也支持WAV时才可用。
yum install libvorbis-devellibgubp由libgub用于编写WebP图像。尽管Guacamole协议并未强制支持WebP,但如果浏览器和libguac都支持WebP图像,则会使用WebP图像。
yum install libwebp-devel为了体验完整功能,以上全部安装。😎
3. 编译阶段
cd gucamole-server-1.4.0 ./configure --with-init-dir=/etc/init.d
运行结果如下:
当然,如果中间状态有no的,需要检查上方的第三方库是否正确。
make && make install & ldconfig
编译阶段至此完成。接下来就是最后一步。😎
4. 启动服务端
/etc/init.d/guacd start
三. 安装中遇到的问题
1.执行 ./configure --with-init-dir=/etc/init.d 报错 如下,转去安装automake-1.16
WARNING: 'aclocal-1.16' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: <http://www.gnu.org/software/automake>解决思路: 按照提示安装一下automake (这里的命令都不是固定的)
wget https://mirrors.ustc.edu.cn/gnu/automake/automake-1.16.tar.xz // 下载automake xz -d automake-1.16.tar.xz // 解压 tar -xf automake-1.16.tar // 解压 cd automake-1.16 // 进入到automake文件下 sudo ./configure prefix=/usr // 构建到指定目录 make && make install // 编译 && 安装说明:在安装automake-1.16,执行到make && make install 又出现了另一个插曲,[Try `--no-discard-stderr' if option outputs to stderr] 如下图:
这个问题的解决方案就是:
cd automake-1.16 // 进入到auto-1.16文件下 vim vim Makefile // 在指定位置添加 [--no-discard-stderr
整体操作如下:
2. 在执行gucamole-server-1.4.0 中 make 阶段会出现如下 问题:
解决思路:执行以下命令后 重新make
make clean // 清除编译的内容
ok 成功编译通过。
三.总结
其实在实际的操作过程中思路以及遇到的问题,要比最后博文展示出来的问题还要多,比如最开始因为虚拟机版本选择的是CentOS 7.9 64位 问题一环扣一环,但是后来想到这些问题也许是自己对centos 各个包之间的依赖关系没有清晰的认识,新手遇到的一些无聊的问题,就没有再去记录,大概处理了有半天的时间🙄,后来就打算换一个版本的centos 进行尝试,问题出现的也是有迹可循,最终成功了~ 简答的说呢就是一个问题如果处理的时间超过两个小时,越来越迷茫,这个时候就应该考虑换个思路去思考了。不要太死脑筋了。还有就是要保持心态,遇到问题不要觉得烦躁,要让自己兴奋起来,因为我又要成长了,要坚定的相信自己可以解决这个问题!😎