我尝试使用Apache Guacamole连接VNC
2021/01/01 修改记录如下,由版本1.0.0升级至1.2.0。
虽然版本升级带来的变化并不大,但以下是我个人所关注的内容。
-
- FreeRDP 2.0 に依存ライブラリが変更(1.1.0)
- 日本語に対応(1.2.0)
Guacamole是什么?
根据我了解,这个链接提供了使用HTML5技术,通过浏览器可访问VNC、RDP等服务的能力。
VNC(虚拟网络计算)是一种可以通过网络从桌面环境访问的机制。
在需要进行图形用户界面操作的封闭网络环境下,例如测试环境,可以通过手中的终端连接至跳板Linux服务器,非常方便。
不过,有时候需要使用专用的客户端进行连接。
我将尝试使虚拟机上的VNC服务器可以通过浏览器进行访问。
保護非常重要。
-
- Fedora 33 (Server Edition)
-
- tomcat 9.0.41
-
- guacamole-server-1.2.0
-
- guacamole-client-1.2.0
- xfce, vncserverをどこかで起動しておく。
步骤
基本上,可以在这个链接(https://guacamole.apache.org/doc/gug/installing-guacamole.html)上找到详细的安装Guacamole的说明。
# 依存。今回はrdp、sshは無くてもよいのだが…
sudo dnf install cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
sudo dnf install libvncserver-devel pulseaudio-libs-devel
sudo dnf install libssh2-devel openssl-devel
sudo dnf install pango-devel
sudo dnf install freerdp-devel
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install ffmpeg-devel
# make用
sudo dnf install libtool
# 公式から取ってくる。
wget 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz' -O guacamole-server.tar.gz
tar -xvf guacamole-server.tar.gz
cd guacamole-server-1.2.0/
# このオプションでsystemdの設定を作ってくれる。
./configure --with-systemd-dir=/usr/lib/systemd/system
make
sudo make install
# 公式手順どおり。
sudo ldconfig
sudo systemctl start guacd
sudo systemctl enable guacd
sudo dnf install tomcat
sudo dnf install maven
wget 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.2.0/source/guacamole-client-1.2.0.tar.gz' -O guacamole-client.tar.gz
tar -xzf guacamole-client.tar.gz
cd guacamole-client-1.2.0/
mvn package
sudo cp guacamole/target/guacamole-1.2.0.war /var/lib/tomcat/webapps
sudo systemctl restart tomcat
sudo systemctl restart guacd
sudo systemctl enable tomcat
# firewallは雑に開ける。
sudo firewall-cmd --add-port 8080/tcp --permanent
sudo firewall-cmd --reload
# 次の手順のために作っておく。
sudo mkdir /etc/guacamole

创建用户。
用户在/etc/guacamole/user-mapping.xml文件中填写。
<user-mapping>
<!-- login 画面で打つやつ。 -->
<authorize username="test" password="password">
<connection name="hostX">
<protocol>vnc</protocol>
<!-- 本当の host, port, password にする -->
<param name="hostname">192.168.0.1</param>
<param name="port">5901</param>
<param name="password">password</param>
<!-- 画面キャプチャ用に入れておく -->
<param name="recording-path">/tmp/hostX</param>
<param name="create-recording-path">true</param>
</connection>
</authorize>
</user-mapping>
连接



因为在user-mapping中写过了,所以也可以获取屏幕上的记录。
$ sudo guacenc /tmp/hostX/recording
guacenc: INFO: Guacamole video encoder (guacenc) version 1.2.0
guacenc: INFO: 1 input file(s) provided.
guacenc: INFO: Video will be encoded at 640x480 and 2000000 bps.
guacenc: INFO: Encoding "/tmp/hostX/recording" to "/tmp/hostX/recording.m4v" ...
guacenc: INFO: All files encoded successfully.
$ sudo file /tmp/hostX/recording.m4v
/tmp/hostX/recording.m4v: ISO Media, Apple iTunes Video (.M4V) Video
太好玩了!
其他
- 1.0.0の時はWindows RDPで苦労してました。https://qiita.com/sandopan65/items/1194078666bbd09eb2fe