说是指导书,实际是避坑指南,guacamole server代码量很少,就是个开源软件,各种依赖系统其他组件,官方指导书又不写清楚,只能一点点摸索
首先,阅读下官方指导书,明白最基本的过程
然后是ubuntu的指导书
继续安装过程:
1. 安装依赖
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev
实际发现,如果不安装下面两个,.configure那一步中rdp就是no,也就是不支持windows远程
sudo add-apt-repository ppa:remmina-ppa-team/remmina-next-daily
sudo apt update
sudo apt install freerdp2-dev freerdp2-x11 -y
2. freerdp2头文件报错
如果编译中出现报错,我的方法就是改头文件,去掉关键字
/usr/include/freerdp2/freerdp/freerdp.h:368:47: note: declared here
> 368 | WINPR_DEPRECATED(ALIGN64 pVerifyCertificate VerifyCertificate);
解决方案,修改freerdp.h,把WINPR_DEPRECATED字样去掉
3. 安装xfreerdp,guacamole连windows就是用的这个软件,所以,必须装,装好后,用如下命令
测试成功,再往下一步
xfreerdp -f host:port -u username -p password
4. tomcat 用apt install tomcat9安装,之前用绿色版,用start.sh命令行启动的方式,可以打开guacamole的登录界面,但无论如何也不能登录成功,提示用户名错误,换成安装版的就ok,神奇
5. 关于配置
mkdir /etc/guacamole/{extensions,lib}
这个步骤很多网友的教程中有,官方教程没说,拿来主义吧
编辑user配置文件,注意,如下两个是必须的,否则也会报错
<param name="security">NLA</param>
<param name="ignore-cert">true</param>
完整的例子:
其中md5的密码用命令生成:echo -n xxxxx | openssl md5
/etc/guacamole/user-mapping.xml
<user-mapping>
<authorize
username="admin"
password="xxxxxxxxxxxx"
encoding="md5">
<connection name="Ubuntu20.04-Server">
<protocol>ssh</protocol>
<param name="hostname">192.168.XX.XX</param>
<param name="port">22</param>
<param name="username">XXXX</param>
</connection>
<connection name="Windows10">
<protocol>rdp</protocol>
<param name="hostname">192.168.XX.XX</param>
<param name="port">3389</param>
<param name="security">NLA</param>
<param name="ignore-cert">true</param>
</connection>
</authorize>
</user-mapping>
安装调试过程中碰到问题注意看log,从log里排查原因
vim /var/log/syslog
ctrl+F 是向后翻页,ctrl+B是向前翻页,log比较多,这两个快捷键很有用
如果连接不上,查看tomcat9目录logs/catalina.out,有如下打印
00:30:51.030 [http-nio-8080-exec-9] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/etc/guacamole".
00:30:51.031 [http-nio-8080-exec-9] DEBUG o.a.g.net.InetGuacamoleSocket - Connecting to guacd at localhost:4833.
00:30:51.031 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused (Connection refused)
00:30:51.031 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.
org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused (Connection refused)
进一步查看端口监听
netstat -ano | grep 4822
如果有异常,就是需要增加配置文件/etc/guacamole/guacd.conf
[daemon]
pid_file = /var/run/guacd.pid
log_level = info
[server]
bind_host = 127.0.0.1
bind_port = 4822 #对应服务启动端口号
完整的/etc/guacamole/目录下配置文件打包下载》》》》下载
6. 启动
sudo systemctl start guacd
sudo systemctl enable guacd
sudo systemctl start tomcat9
sudo systemctl enable tomcat9
实际测试tomcat9成功率较高,用的下载版或者安装版,推荐用下载版
关于下载版tomcat的自启动,可以参考
Ubuntu下设置Tomcat开机自启动