由于项目需求需要一个远程桌面的内容,开始调研了guacamole,毕竟大厂,下面说下集成细节,希望帮助更多小伙伴。
官网地址:http://guacamole.apache.org/
由于项目不需要Kubernetes与group等内容,只是简单的远程桌面,这里就使用了1.0.0的版本。
根据官网地址选择下载客户端与服务端
1、环境准备
按照API内容,服务端需要依赖更改lib,这里选择yum安装。API地址:http://guacamole.apache.org/doc/gug/
---安装gcc环境
yum install gcc
---guacamole基础依赖有以下:直接yum安装
In order to build guacamole-server, you will need Cairo, libjpeg, libpng, and the OSSP UUID library. These libraries are strictly required in all cases - Guacamole cannot be built without them.
yum install -y cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
---额外依赖,我们需要什么协议就安装即可,其他如下,有rdp、vnc、ssh等协议支持
yum install -y freerdp-devel pango-devel libssh2-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel
注意:这里需要注意下,如果使用rdp的协议,由于centos是新版本,yum下载的也是最新版的2.0的rdp,在后续检测的时候是检测不到安装了rdp的。需要手动安装rdp1.0以上但不要太高的版本。这里选择1.2版本的freerdp。当然如果选择了1.1.0的guacamole就不会有这样的问题,毕竟新版支持的是2.0+的freerdp。
---下面安装freerdp1.2的版本,导入源
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
---安装1.2版本freerdp
yum list | grep freerdp
yum install freerdp1.2.x86_64
yum install freerdp1.2-devel.x86_64
2、安装guacamole服务端
解压下载的guacamole-server-1.0.0.tar.gz
任意目录都可以,并将config加入到init中,日志输出依赖包情况。
tar -xzf guacamole-server-1.1.0.tar.gz
cd guacamole-server-1.1.0/
./configure --with-init-dir=/etc/init.d
日志输出依赖项,主要看protocol support是否符合自己的业务要求,我这里有rdp就可以了。下面的guacd是必须的,没他是不可以的,检查没有问题之后,直接开始安装。
在当前目录下执行
make
make install
ldconfig
安装完成之后,可以使用以下来看guacd是否安装成功。
service guacd start
service guacd stop
service guacd restart
到这里我们的服务端就安装好了
注意:服务端默认监控的host为localhost,端口为4822,这些后续我们会根据业务需求进行修改。
3、安装guacamole客户端
(这个客户端可装可不装,看自己需求,如果使用guacamole-common搭建自己的服务,就不需要安装,我们后续介绍,这里建议安装下,毕竟可以测试一下我们是否成功了)
安装客户端需要一个tomcat与jdk的环境,这里大家自行准备吧,我使用的是jdk8与tomcat8.0
解压tomcat,将我们下载的guacamole-1.0.0.war,放入webapp目录下。
---这里需要注意下在启动客户端之前我们首先需要配置服务端需要的配置文件。配置文件目录地址官方提供两种:第一种在tomcat的目录种创建.guacamole的目录,第二种创建/etc/guacamole目录,这里使用第二种。
cd /etc
mkdir guacamole
这里配置文件有很多具体参考官方在这里我们配置三个配置文件
---guacamole.properties 主要是配置guacamole服务端连接的guac的主机和端口,如果不配置,默认为localhost与4822
touch guacamole.properties
# Hostname and port of guacamole proxy
guacd-hostname: 10.0.30.50
guacd-port: 4822
---user-mapping.xml 这个是配置我们需要连接的设备的配置,1.1.0之后也可以用数据库去配置,配置很简单
touch user-mapping.xml
rdp
10.0.30.224
3389
admin
123456
ssh
10.0.30.47
22
ssh
10.0.30.47
22
authorize:后续登陆客户端的账户密码,
connection:用来配置一个用户下的多个设备,如果只配置单个设备,进入客户端只会显示当前设备页面,不会有多个设备供选择的页面,这里建议使用,因为后续我们做web集成时候使用。
protocol:我们要访问设备的协议rdp\ssh\vnc等
parma:是当前协议下的一些参数,主要都是端口ip用户名等。
---guacd.conf 这个配置文件不是给客户端用的,而是用来修改guacd服务端默认的端口ip。由于我们设备不在当前网卡上,我们配置一下将localhost更改为ip地址。
touch guacd.conf
#
# guacd configuration file
#
[daemon]
pid_file = /var/run/guacd.pid
log_level = info
[server]
bind_host = 10.0.30.50
bind_port = 4822
#
# The following parameters are valid only if
# guacd was built with SSL support.
#
注意:更改guacd.conf之后需要重启服务端,更改其他配置文件需要重启客户端。
直接启动tomcat即可启动客户端。具体页面如下
注意:如果遇到账户403的时候,请检查usermapping配置文件的格式,可以直接复制我的。
登陆之后的效果我就不截图了,就是远程的的页面了,或者选择设备的页面。
温馨提示:下一片内容主要讲解javaweb如何集成guacamole使用,集成方式有很多,有需要的同学可以看看。
提示:guacamole还有一些其他的认证方式
这些内容官网说的很直白了,就不在赘述了,无非下载jar添加到指定目录,重新启动。