VNC入门:tightVNC + noVNC通过浏览器访问远程桌面
VNC入门:tightVNC + noVNC通过浏览器访问远程桌面
一、VNC基础介绍:什么是VNC
VNC就是一种内网远程桌面控制系统,由AT&T欧洲实验室开发。到现在已经由很多VNC版本,比如tightVNC, tigerVNC,RealVNC 等。
VNC 包含 被控端VNC server 和 查看端VNC Viewer 。
被访问的机器安装VNC server,访问的机器通过VNC Viewer来访问VNC server。
本篇介绍的内容是:tightVNC搭建VNC server,而访问VNC server的时候,不使用VNC viewer,而使用noVNC 通过浏览器来访问。
二、实现原理: 代理关系
网络代理关系图
代理关系说明
1,被访问机器安装tightVNC成为VNC server,开放5900端口
2,浏览器访问VNC server 需要Tcp 到websocket的转化,因此 使用websockify 把5900端口代理到8080
3,通过nginx 把noVNC的web服务代理到80端口,供外界访问。
4,在其他机器上,通过输入 url:80/vnc.html 访问到noVNC页面后,设置websocket访问端口,访问被访问机器。
三、操作步骤
3.1 下载安装tightvnc
tight VNC下载地址:www.tightvnc.com/download.php
我这里使用的windows版本的,所以安装和启动和一般的软件安装一样,就不多做赘述。
3.2 下载node,并安装nodejs
下载nodejs是为了运行 websocket-to-tcp 服务,就去node.js 官网下一个安装就好。
node.js 官网:https://nodejs.org/zh-cn/download/
3.3 下载并启用websocket-to-tcp 服务
websocket-to-tcp包的下载地址: https://www.npmjs.com/package/package/@manage
安装方式: npm i @maximegris/node-websockify
举个例子: 比如在C盘下创见一个文件夹,叫做websocketcp,进入这个文件目录下,通过npm命令安装这个包。
配置并启用websocket-to-tcp服务: 在C:/webscoketcp下创建config.js 文件内容为:
var websockify = require('@maximegris/node-websockify'); //192.168.1.180 为VNC server主机的IP websockify({ source: '192.168.1.180:8080',//websocket Server 的服务地址和端口,端口号为8080 target: '192.168.1.180:5900',//VNC Server 的服务地址和端口,端口号为 5900 });
启用命令: node config.js 启用websocket-to-tcp 服务
3.4 下载启用nginx服务
3.5 下载noVNC服务,通过nginx 启用该服务
下载noVNC: github.com/novnc/noVNC
把noVNC服务部署到Nginx上: 把noVNC项目放在 nginx/html 目录下
启动nginx服务: 在Nginx 目录下,使用命令行命令: nginx.exe start 启动服务
3.6 使用noVNC访问VNC服务器
websocket 输入 websocket server 的地址和端口号,点击连接就可以访问。访问结果,如下图:
==============================================================
VNC小技巧:隐藏VNC图标等
A. 隐藏VNC图标
Windows环境下:
重启VNC Server,可以看到右下角已经没有VNC图标了。
老版本VNC Server 4.4.2 及之后部分版本隐藏图标:
重启VNC Server,可以看到右下角已经没有VNC图标了。
通过注册表隐藏VNC Server6 的图标
在注册表中,找到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vncserver]
将ImagePath里的内容"C:\Program Files\RealVNC\VNC Server\vncserver.exe" -service 改为
"C:\Program Files\RealVNC\VNC Server\vncserver.exe" -service -DisableTrayIcon=1
重启VNC Server,可以看到右下角已经没有VNC图标了
·