1、起因

最近公司项目有一个需求,需要实现novnc方式远程连接到服务器,之前没有做过类似的功能,听其他技术说可以自己搭一个novnc的server,搞一个websocket的请求代理,通过novnc的方式就可以实现,抱着试试的心态搭了一下,整个过程搭建下来用了不到10分钟就搞定了。

2、依赖软件列表及下载地址

3、详细的安装过程

3.1 UltraVNC-Server安装

需要在远端的服务器上面安装 UltraVNC-Server服务,下载下来UltraVNC_1_3_42_X64_Setup.exe之后,双击安装,选择组件时默认选中这三个即可,下一步:
在这里插入图片描述
在这里插入图片描述
之后执行安装即可,如果不想使用默认安装路径,可以自定义安装到自己选择的系统目录下即可。
在这里插入图片描述
双击【UltraVNC Server】,任务栏右下角会出现天蓝色图标按钮
右键任务栏"小眼睛图标"打开菜单
在这里插入图片描述

点击【Admin Properties】打开配置连接的密码,连接的密码分为可操作的密码跟只看的密码
点击【apply】后,点击【OK】保存配置
在这里插入图片描述

点击【Start Service】并重启电脑。
在这里插入图片描述
在这里插入图片描述

3.2 novnc服务安装代理服务安装配置

websockify-js运行依赖于nodejs,这里需要先安装nodejs环境,nodejs的安装环境配置我有其他的博客介绍,这里不赘述,需要可以自行查找。

3.2.1 依赖模块安装

websockify.js运行依赖于一下这几个模块,需要先安装这些依赖模块, 我这里是直接在C:\Users\Administrator目录下安装的模块执行之后会在当前目录下生成node_modules目录,wsoptimistmime-types模块会自动安装到该目录下

npm install ws
npm install optimist
npm install mime-types

在这里插入图片描述

在这里插入图片描述

3.2.2 安装novnc

进入到C:\Users\Administrator\node_modules\目录下, 将下载的noVNC-master.zip压缩包解压到当前目录,重命名为noVNC
在这里插入图片描述

3.2.3 安装 websockify-js

进入到C:\Users\Administrator\node_modules\noVNC目录下, 将下载的websockify-js-master.zip压缩包解压到当前目录,重命名为websockify-js
在这里插入图片描述

3.3 运行代理服务

在运行代理服务之前,需要先确认vnc server服务是否正常运行,这个websockify-js的作用就是运行一个代理服务,代理本地的vnc-server服务。
在这里插入图片描述
进入到websockify.js所在的文件目录, 这个文件就在websockify-js解压目录下的的websockify\websockify.js目录下,
完整路径C:\Users\Administrator\node_modules\noVNC\websockify-js\websockify\websockify.js
在这里插入图片描述

进入到C:\Users\Administrator\node_modules\noVNC\websockify-js\websockify目录下, 打开命令行,启动代理服务,启动命令如下:

node websockify.js --web C:\Users\Administrator\node_modules\noVNC 9000 localhost:5900

对这个命令进行一下说明

  • –web:之后的路径必须是我们下载的noVNC-master.zip解压之后所在的那个安装了wsoptimistmime-types等依赖的node_modules目录的绝对路径,我这里是C:\Users\Administrator\node_modules\noVNC,这里需要根据你自己的实际安装情况进行修改,负责会找不到nvc.htmlvnc_lite.html文件
  • 9000 代表代理端口
  • 9000端口的请求转发到localhost:5900处理

启动正常之后如下:
在这里插入图片描述

3.4 浏览器远程访问

服务端已经配置好了,这里只需要知道远端服务器的Ip地址即可访问,
**注意:**这里需要注意,如果远程服务器开启了防火墙,需要开放远程服务器的9000端口, 否则无法访问。

在本地浏览器输入http://192.168.1.218:9000/vnc.html,这里需要将192.168.1.218更换成你自己的服务器IP地址或者域名,即可远程登录服务器。
在这里插入图片描述
输入我们的远程连接密码
在这里插入图片描述
远程登录服务器成功!!!
在这里插入图片描述

3.4 版本包分享百度云连接地址

百度网盘地址:https://pan.baidu.com/s/1LP-VuA3FRLmRk2N4CyQCOQ
提取码:2acu
需要自取哦~

3.5 问题解决

有朋友反馈, 为什么只能连接, 但是无法输入?

这个问题需要在server端进行配置
在右下角UltraVNC Server的图标上右键-选择【Admin Properties】,下拉【Advanced options】
在这里插入图片描述
在【Keyboard&Mouse】模块将【Disable Viewer inputs】和【Disable local inputs】前面的"√"去掉,保存并应用当前修改。
在这里插入图片描述
重启UltraVNC Server和noVNC服务即可, 这个一定要执行哈,否则不会生效~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐