不管是 VMware, Xen 还是 KVM都可以通过 VNC 客户端访问这些虚拟机的控制台,如果要开发虚拟机的 web 控制面板的话当然最好能配一个 web 的 VNC 客户端。noVNC 正是我们需要的 HTML5 VNC 客户端,其采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,并且被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 。
前面说了 noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,怎么办呢?需要一个代理来做 WebSockets (Http socket)和 TCP sockets 之间的转换,理解这一点很重要。这个代理也已经有了,在 noVNC 的目录里,叫做 websockify。
vncServer
安装vnc4server,使用noVNC访问服务器的虚拟机控制器,首选需要在服务器如192.168.110.179安装该服务;
xy@tnode07:~$ sudo apt-get install vnc4server
配置vnc的xstartup文件:vi /home/xy/.vnc/xstartup
#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager &
启动vncserver服务
xy@tnode07:~$ vncserver //启动vncserver服务 You will require a password to access your desktops. Password: Verify: xauth: file /home/xy/.Xauthority does not exist New 'tnode07:1 (nsr)' desktop is tnode07:1 Creating default startup script /home/xy/.vnc/xstartup Starting applications specified in /home/xy/.vnc/xstartup Log file is /home/xy/.vnc/tnode07:1.log
命令查看vncserver状态
xy@tnode07:~/noVNC/websockify$ ps axu|grep vnc4 xy 6867 0.0