远程桌面管理工具novnc的搭建和使用

随着技术的发展,测试行业也慢慢和运维靠拢,与devops对应,诞生了testops的概念 。所以各位测试同学务必建立起一定的运维知识 。在传统的运维或者测试工作当中,对于机器的远程桌面管理一直是很常规的工作,比如windows的远程桌面RDP,linux的vnc和nomachine 。今天我们主要聊一下novnc这个东西在vnc领域的使用,原因在于,有时候我们不想安装一个客户端软件,或者需要提供一个方便的远程的工具内嵌到我们的应用当中 。下文以ubuntu为例进行介绍,windows比较简便,不在赘述 。
安装vncserver传统linux服务器在安装过程中为了减少空间,提高效率和增强安全性,一般只会做最小的服务器安装,所以不会安装桌面相关的组件 。而在vnc的使用过程中,大家动动脑子就知道,没有桌面支持,我们显示个鸟文件夹啊 。

  • 以xfce为例,我们增加桌面环境的支持:
sudo apt-get install xfce4
  • 然后我们安装vnc服务端:
sudo apt-get install vnc4server
  • 修改~/.vnc/xstartup中的内容为:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
  • 然后使用如下命令启动vnc:
vncserver
启动的时候会提示输入连接密码以及是否提供一个只读密码,根据需要,自行输入 。启动成功后会得到如下结果:
ubuntu@awvs:~/.vnc$ vncserver
New 'X' desktop is awvs:1
Starting Applications specified in /home/ubuntu/.vnc/xstartup
Log file is /home/ubuntu/.vnc/awvs:1.log
这里面要说明下,vnc的服务器的端口从5901开始,上面的awvs:1中,awvs是主机名;1的意思就是端口5901,如果是2的话,端口就是5902了 。如果要停止当前的vnc服务,使用:
vncserver -kill :1
支持,服务端的配置算完成了 。一般的介绍中,后面会介绍客户端的安装 。比较常见的有tightnvc、vncviewer等,随便选择安装一款即可 。比如我在windows上安装的就是tightvnc 。
远程桌面管理工具novnc的搭建和使用

文章插图
使用的时候,从程序里面找到tightvnc%20viewer进行启动,然后输入我们vnc服务的ip和地址,比如上文的192.168.10.49:5901:
远程桌面管理工具novnc的搭建和使用

文章插图
启动后输入我们在执行vncserver的时候设定的密码:
远程桌面管理工具novnc的搭建和使用

文章插图
,就可以看到远程桌面了:
远程桌面管理工具novnc的搭建和使用

文章插图
novnc的安装和使用上文我们说到,使用vnc的时候必须安装服务端和客户端,其中服务端是必不可少的,客户端有可以不必安装的解决方案,这里介绍下novnc:https://github.com/novnc/noVNC 。看下官方的介绍:
noVNC is both a html VNC client JAVAScript library and an application built on top of that library. noVNC runs well in any modern browser including mobile browsers (IOS and Android).
简单翻译下:noVNC是一个使用HTML的VNC客户端JavaScript的库和基于该库之上的应用 。noVNC运行在所有的现代浏览器当中(包括iOS和安卓) 。
Many companies, projects and products have integrated noVNC including OpenStack, OpenNebula, LibVNCServer, and ThinLinc.
再来看看典型客户:许多、项目和产品都在其中集成了noVNC,包括OpenStack, OpenNebula(OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen、KVM、VMware等虚拟化软件一起打造企业云 。利用OpenNebula可以轻松构建私有云、混合云、公开云)、LibVNCServer(一个实现了vnc服务器端的库)等 。
简单总结下:NoVNC是一个js库,在云计算等iaas层有着典型的应用 。这与我在上面提到的测试必须掌握一定的运维知识相符合:)
  • 首先在ubuntu上开启snap:
sudo apt install snapd
sudo systemctl enable --now snapd.socket
  • 然后通过snap安装novnc应用:
sudo snap install novnc
  • 接下来使用如下的命令创建一个novnc的服务:
sudo snap set novnc services.n6081.listen=6081 services.n6081.vnc=localhost:5901
简单解释下,该novnc的服务名称为services.n6081,监听的端口为6081,所监听的vnc服务为locahost:5901,如果连接的是其他服务器,将localhost改为对应的ip或者主机名即可 。


推荐阅读