首页 > 编程知识 正文

Web 访问的利器 noVnc

时间:2023-05-04 19:00:52 阅读:269646 作者:4107

NoVnc NoVnc:Web 端的Vnc软件、可以直接通过网页访问远程主机,采用 HTML5、WebSockets、Canvas和 JavaScript 实现,被普遍用在各大云平台中。网页就是一个客户端、类似 Windows 下的 vncviewer 。 系统环境 CentOS 6.8Novncwebsockifynumpy-1.8.2 安装配置 $ yum istall -y git$ git clone https://github.com/novnc/noVNC.git //从GitHub 克隆 快速开始 $ cd noVNC$ ./utils/launch.sh --vnc localhost:5901 ##第一次会帮我们下载Websokify 开始访问 WebSocket server settings: - Listen on :6080 - Web server. Web root: /vnc/noVNC - No SSL/TLS support (no cert file) - proxying from :6080 to 192.168.1.32:5901Navigate to this URL: //跳转 http://compute2:6080/vnc.html?host=compute2&port=6080

下面只需要在浏览器打开这个地址就可以访问了、Enjoy it~~

http://192.168.1.32:6080/vnc.html ##也可以访问这个地址

整个流程大概是这样的

vnc.html -> 192.168.1.32:6080(PC2) -> websockify.py -> localhost:5901 高级用法

使用 websockify 可以更改默认6080端口、使用 token 设置

./utils/websockify/websockify.py --web ./ 8787 localhost:5901

--web ./指定访问根目录,8787表示访问novnc的端口,localhost可以改成所有安装了vncserver的IP地址,比如:./utils/websockify/websockify.py --web ./ 8787 192.169.1.100:5901。

代理设置

​ 我们上面的场景是基于noVNC代理和vncserver在同一台机器上的,倘若我们想通过noVNC访问局域网中的所有机器,难道要给每一台机器都安装配置noVNC,然后用每台机器的IP地址去访问它吗?显然这种做法是繁琐笨拙的。实际上,我们只需要一台机器作为noVNC代理,其他被访问的机器安装VNC server就可以了。

代理服务器: 192.168.1.191计算节点:192.168.1.31、192.168.1.32、192.168.1.33 在代理服务器上创建 token 文件 $ mkdir token$ cat token.confabc123: 192.168.1.32:5900abc456: 192.168.1.32:5901abc123: 192.168.1.33:5900$pwd/root/noVNC/token

配置文件记得中间以空格分开

启动Vncserver

在欲访问的机器上启动 vncserver , 执行 vncserver 即可

代理服务器执行 $ yum install -y screen //新开screen 窗口输入、防止被打断$ screen -R vnc //这里会进入一个新的会话窗口$ ./utils/websockify/websockify.py --web ./ --target-config=./token/token.conf 8787ctrl a +d 退出screen 浏览器输入 http://192.168.1.191:8787/vnc.html?path=?token=abc123 //这里的token改为对应的token

这样就可以直接访问了,Enjoy…

问题排查 访问速度慢:安装numpy $ cd /usr/local/src$ wget http://jaist.dl.sourceforge.net/project/numpy/NumPy/1.8.2/numpy-1.8.2.tar.gz$ tar xvf numpy-1.8.2$ cd numpy-1.8.2 ##yum install python-devel 缺少什么就装一下$ python setup.py install

测试是否安装成功

>>> from numpy import *>>> eye(4)array([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]])>>>

如果输入host地址,port之后,不能访问,查看密码是否正确,如果显示connection refused,查看被访问主机vncserver是否启动,如果未启动,执行vncserver。

使用noVNC每个系统桌面或者虚拟机每次只能有一个连接,如果连接时出现错误Server disconnected (code: 1000, reason: Target closed),也有可能是你已经连接了或者在virt-manager里面启动了虚拟机并进入了系统桌面。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。