Skip to main content

Guacamole部署

· 4 min read
luke
luke

前言

目的是随时随地的在任何地方都能够操控家里的电脑,在网上搜索了以下解决方案,Guacamole 远程桌面网关服务 可以实现所需的功能

Guacamole 是 Apache 出品的免费开源远程桌面网关,通过 Guacamole,无需任何客户端或插件,只要有支持 HTML5 和 JavaScript 的 Web 浏览器即可访问远程资源,不仅支持 Windows RDP 协议,也支持 VNC 协议,甚至还支持 SSH、Telnet 等协议。Guacamole 的核心目标是将桌面保持在云端,从任何地方访问计算机。

需要的和需要完成的

  • 部署guacamole-server:主要提供将 RDP等协议与WebSocket协议进行转换
  • Guacamole Web : Web页面
  • Tomcat : 提供http服务

部署guacamole-server

# 下载并解压guacamole-server安装包
wget https://archive.apache.org/dist/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz
tar -xzvf guacamole-server-1.5.5.tar.gz

# 进入目录进行安装
cd guacamole-server-1.5.5
./configure --with-init-dir=/etc/init.d

如果输出出现如下的内容,有yes的表示支持,否则就是不支持缺少依赖

   Protocol support:

Kubernetes .... yes
RDP ........... yes
SSH ........... yes
Telnet ........ yes
VNC ........... yes

可以安装如下依赖,这里就全部进行安装

apt install libavcodec-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 libcairo2-dev libjpeg-turbo8-dev libpng12-dev libtool-bin libossp-uuid-dev

如果以上都准备好就可以开始编译安装了

# 编译安装
make & make install && ldconfig

# 配置guacamole-server文件
mkdir /etc/guacamole/
cd /etc/guacamole/
vim guacd.conf

# 修改成以下内容并保存 :wq
[daemon]
pid_file = /var/run/guacd.pid
log_level = debug
[server]
bind_host = 127.0.0.1
bind_port = 4822

# 启动 guacamole-server
/etc/init.d/guacd start

# 输出SUCCESS则成功了

安装tomcat并启动

apt install tomcat9
# 启动Tomcat并设置为开机自启
systemctl start tomcat9
systemctl enable tomcat9

# 下载 Guacamole Web 应用
cd /var/lib/tomcat/webapps/
wget https://archive.apache.org/dist/guacamole/1.5.5/binary/guacamole-1.5.5.war -O guacamole.war

# 创建 guacamole.properties
vim /etc/guacamole/guacamole.properties

# 添加以下内容并保存 :wq
# Guacamole 服务器地址
guacd-hostname: localhost
guacd-port: 4822

# 认证配置(如果使用数据库,请修改)
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml

# end(到这里guacamole.properties的内容就结束了哈,别复制多了)

# 创建 user-mapping.xml(测试用的用户配置)
vim /etc/guacamole/user-mapping.xml
# 添加以下内容并保存 :wq(根据自己需要远程的机器信息进行填写)
<user-mapping>
<authorize username="guacadmin" password="guacadmin">
<connection name="Test RDP">
<protocol>rdp</protocol>
<param name="hostname">192.168.8.206</param>
<param name="port">3389</param>
<param name="username">Administrator</param>
<param name="password">9004</param>
<param name="ignore-cert">true</param>
<param name="cert-ignore-name-check">true</param>
<param name="security">any</param>
<param name="domain">.</param>
</connection>
</authorize>
</user-mapping>
# 到这里结束,上面这个文件的里面的内容就是远程桌面连接里面填写的东西

# 创建 GUACAMOLE_HOME 软链接
ln -s /etc/guacamole /var/lib/tomcat/.guacamole
# 重启服务
systemctl restart tomcat
systemctl restart guacd

# 关闭防火墙(哈哈哈,个人机器,仅作测试,生产系统里面别关了啊哈哈哈哈哈)
systemctl stop firewalld.service
# 禁用防火墙自启
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld.service

全部启动之后就可以访问了 http://127.0.0.1:8080/guacamole

输入认证的 guacadmin和密码 guacadmin
如果配置没有问题就可以连接了