noVNC实现浏览器远程访问Windows桌⾯
⼀、简介
1、VNC介绍
VNC (Virtual Network Console)是虚拟⽹络控制台的缩写。它是⼀款优秀的远程控制⼯具软件。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能⼒强⼤,⾼效实⽤,其性能可以和 Windows 和MAC中的任何远程控制软件媲美。
VNC基本上是由两部分组成:⼀部分是客户端的应⽤程序(vnc viewer);另外⼀部分是服务器端的应⽤程序(vnc rver)。VNC的基本运⾏原理和⼀些Windows下的远程控制软件很相像。VNC的服务器端应⽤程序在UNIX和Linux操作系统中适应性很强,图形界⾯⼗分友好。在任何安装了客户端的应⽤程序(vncviewer)的Linux平台的计算机都能⼗分⽅便地和安装了服务器端的应⽤程序(vncrver)的计算机相互连接。2、noVNC介绍
noVNC提供⼀种在⽹页上通过html5的Canvas,访问机器上vncrver提供的vnc服务,需要做tcp到websocket的转化,才能在html5中显⽰出来。⽹页就是⼀个客户端,类似win下⾯的vncviewer,只是此时填的不是裸露的vnc服务的ip+port,⽽是由noVNC提供的websockets的代理,在noVNC代理服务器上要配置每个vnc服务,noVNC提供⼀个标识,去反向代理所配置的vnc服务。
noVNC 被普遍⽤在各⼤云计算、虚拟机控制⾯板中,⽐如 OpenStack Dashboard 和 OpenNebula Sunstone 都⽤的是 noVNC。
⼆、准备⼯作
1、远程⽬标主机:Windows Server 2008 r2(⽤vmare中虚拟机测试)
三、具体操作
0、⽬标主机Windows Server 2008 r2先要安装远程桌⾯服务
1、在远程主机中安装UltraVNC,并开启服务,设置密码
2、安装node.js
安装时选择npm package manager
node.js安装完成后,需要安装ws、optimist模块(执⾏websockify.js⽂件所需)
C:\Urs\Administrator>npm install ws
C:\Urs\Administrator>npm install optimist
C:\Urs\Administrator>npm install mime-types
安装完ws和optimist后会在C:\Urs\Administrator\下⽣成node_modules⽬录
3、把noVNC.zip解压到node_modules⽬录下,再把websockify-master.zip解压到noVNC⽬录下。
注:Windows Server 2008 r2需要设置防⽕墙端⼝例外
新建⼊站规则
4、执⾏websockify.js:转发9000端⼝的http链接到5900端⼝(UltraVNC Server的默认端⼝为5900)
(注:其中10.70.117.185为⽬标主机地址)
这时候只要在websockify.js中搜索filename += '/index.html'改成filename += '/vnc.html',再重复第4、5步即可完成。
输⼊密码,成功登录Windows远程桌⾯