TurboVNC源码编译试用
一,测试环境
硬件:VirtualBox 7.0
操作系统:UbuntuKylin 20.04.3 LTS
二,准备源码
https://www.turbovnc.org/
https://github.com/TurboVNC/turbovnc/releases
下载到源码包:turbovnc-3.0.1.tar.gz
解压
$ tar xf turbovnc-3.0.1.tar.gz
$ cd turbovnc-3.0.1/
三,编译
$ sudo apt install cmake
$ sudo apt-get install libturbojpeg0-dev
$ sudo apt-get install openjdk-8-jdk
$ sudo apt-get install libpam0g-dev
$ sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
$ mkdir build
$ cd build/
$ cmake -G”Unix Makefiles” ..
$ make
$ sudo make install
调试编译:
$ cmake -DCMAKE_BUILD_TYPE=Debug -G”Unix Makefiles” ..
四,服务端运行
$ cd /opt/TurboVNC/bin
$ ls
checkshmpixmaps vncconnect vncserver webserver Xvnc
tvncconfig vncpasswd vncviewer xstartup.turbovnc
$ ./vncserver
Desktop ‘TurboVNC: lenky-VirtualBox:1 (lenky)’ started on display lenky-VirtualBox:1
Starting applications specified in ./xstartup.turbovnc
Log file is /home/lenky/.vnc/lenky-VirtualBox:1.log
$ ./vncserver -list
TurboVNC sessions:
X DISPLAY # PROCESS ID NOVNC PROCESS ID
没有看到运行?
$ sudo netstat -natp
也没看到监听进程。
查看日志文件:/home/lenky/.vnc/lenky-VirtualBox:1.log
末尾有一条日志:Killing Xvnc process ID 1436
这是没启动成功?
可能还是因为我这里是通过ssh远程到虚拟机执行的,还是在虚拟机本地终端试试。
登录虚拟机桌面,打开本地终端,执行后,服务正常启动了。
$ ./vncserver -list
TurboVNC sessions:
X DISPLAY # PROCESS ID NOVNC PROCESS ID
:1 3019
也是那个类似XAUTHORITY的问题?暂且不管。
五,客户端连接
客户端是Windows,下载vncviewer
https://www.realvnc.com/en/connect/download/viewer/
安装:VNC-Viewer-6.22.826-Windows.exe
在Windows上启动VNC Viewer。
VNC Server地址填:192.168.56.102:1,注意:1,因为TurboVNC对外提供的X DISPLAY为:1,否则连不上。
输入密码,正常进入桌面,这个桌面和虚拟机本地桌面显示不一致,因为是不同的X DISPLAY。
六,关闭服务
$ ./vncserver -kill :1
Killing Xvnc process ID 3019
七,试试turbovnc自己的客户端vncviewer
编译turbovnc后,对应的bin目录有一个vncviewer程序,试试。
后续可以看下它的源代码,有助于理解RFB协议。
$ ./vncviewer
over~
参考:
https://blog.csdn.net/weixin_44831881/article/details/119810165
https://support.huawei.com/enterprise/zh/doc/EDOC1100228707?section=j024
https://zhuanlan.zhihu.com/p/396627900
https://blog.csdn.net/weixin_44831881/article/details/119810165
https://docs.oracle.com/cd/E19957-01/820-3257/turbovnc.html
==============================
20221217 update:
使用一:同一个账号,如果已经登录了图形界面,另外一个登录就会黑屏?
现象:比如如果电脑本地用test登录了图形界面,再在vnc里用test登录就是黑屏,如果在本地图形界面里用sudo init 3退出,vnc里就会正常显示桌面。
使用二:
用账号1(test1)远程登录ssh,然后在ssh终端里执行如下命令。
配置使用xfce桌面
$ sudo apt install xfce4 xfce4-goodies
$ vncpasswd
$ vi ~/.vnc/xstartup
$ cat ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
$ chmod u+x ~/.vnc/xstartup
启动1:
$ /opt/TurboVNC/bin/vncserver
接入:192.168.1.12:1 成功
启动2:
$ /opt/TurboVNC/bin/vncserver
接入:192.168.1.12:2 成功
用另外一个账号(test2)远程登录ssh,然后在ssh终端里启动3:
$ /opt/TurboVNC/bin/vncserver
接入:192.168.1.12:3 失败,查看日志/var/log/syslog,有看到Permission denied.提示。
转载请保留地址:http://www.lenky.info/archives/2022/11/3241 或 http://lenky.info/?p=3241
备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来信讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。
法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。