要点详解:
VNC 是指Virtual Network Console ,意为虚拟网络控制台,是一款由欧洲AT&T研究实验室开发的开源软件,基于UNIX和LINUX操作系统。 其包含server 和 viewer两个部分,即服务端和客户端。VNC服务端能通过ghome等图形化桌面组件将系统界面远程可视化并通过X protocol 要求服务端将画面显示控制权交由vncserver负责, 再通过socket和 simplehttp 将桌面环境远程发布到 viewer端,实现远程操作.
noVNC则是一款github上开源的基于浏览器的类vncviewer,使用node.js + python开发。他能解决过去vncviewer需要在不同系统安装客户端的复杂操作并解决跨系统访问问题。
本文要解决的问题 :
1 如何部署VNCserver 服务?
2 如何部署 noVNC服务?
3 noVNC有哪些弊端
1 VNCserver的部署.
linux系统下,以ubuntu和centos为例,其官方源均自带vncserver.分别使用apt和yum安装即可.
目前比较好的两个版本是 tightvncserver 和 vnc4server 。两者之前的command几乎一致。
Vnc启动 : vncserver :1 -geometry 1902x1080 -name student
Vnc 停止: vncserver -kill :1
2 如何部署noVNC
首先到github下载源码 git clone git://github.com/kanaka/noVNC
由于noVNC依赖于python的websockify模块,所以需要提前安装这个模块。你可以安装python环境后通过pip安装他,也可以通过apt直接在系统安装该模块。如果都不行的话,启动noVNC的时候系统也会自动下载最新版的websockify。
另外websockify需要依赖于openssl证书,所以要通过如下命令生成证书:
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
生成后的证书 self.pem需要放到noVNC目录下,当noVNC启动时,websockify将自动装载证书。
当服务端已启动vncserver的情况下(默认 5901端口),此时通过命令:
./utils/launch.sh --vnc localhost:5901
即可启动noVNC服务,然后通过浏览器访问:
http:/localhost:6080/vnc.html?host=localhost&port=6080即可通过浏览器操作server端的桌面。
如果显示的是灰色界面,需要安装图形操作界面,以ubuntu为例子:
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal,
安装完成之后需要更改~/.vnc/xstartup文件,添加如下内容:
# vim ~/.vnc/xstartup
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
gnome-panel &
gnmoe-settings-daemon &
metacity &
nautilus &
gnome-terminal &
之后重启vncserver就OK了
如果是centos出现蓝屏,则
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
若提示
fwupdate-efi 与 grub2-common 冲突
这是由于grub2-common包的冲突,所以要将该包使用yum update grub2-commonn命令进行更新。
解决方法:
yum update grub2-common
yum install fwupdate-efi
部分系统的5901端口默认是禁止的,可将其加入安全端口或者部署到非5901端口:
sudo iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
3 noVNC有哪些弊端
1 带宽高
2 仅支持chrome