websockify文档

摘要:
websockify项目的wiki主页介绍了实现一个端口和多个代理的方法。实现原理是websocketproxy Py。该代理从指定的令牌目录读取令牌文件。令牌文件通常对应于客户端(虚拟机)。[ root@node2websockify]#Ll/usr/local/websockify/token/-rw-r--r-1 rootroot285五月2916:46vnc123-rw-r--r-1根root285四月2916:46 vnc234-rw-r--r-1根根285五月29 16:46v nc3453,启动代理/usr/local/websoccify/run--token pluginTokenFile--令牌源/usr/local/websockiy/token/6080如果它是单个令牌文件,您可以使用以下命令启动/usr/local/websockify/run-target config/usr/local/websockiy/token6080访问vnc使用Chrome、Firefox和其他浏览器访问vnc。我基于Novnc的API文档编写了一个简单的演示,并将其放在nginx服务下http://192.168.20.111/vnc.html?token=vnc123如果您在Novnc中启动websockify,则需要使用--web参数。访问地址如下http://192.168.20.121:8080/vnc.html?

一、官网地址

地址:https://github.com/novnc/websockify

二、开启代理

1、单台服务器

python /usr/local/websockify/websockify.py --cert /usr/local/websockify/self.pem 6080 192.168.20.134:5901

self.pem可使用OpenSSL来生成,然后放在目录下,当然也可以不加cert参数

openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

2、多台节点服务器

在实际应用中,不可能为每台虚拟机都架一个代理,这种方式对端口号的消耗也是巨大的,同时 VNC 通常是集成在前端页面,那有没有可能仅开一个端口,而实现代理多台虚拟机呢,答案自然是可以。

在 websockify 项目的Wiki 主页(https://github.com/novnc/websockify/wiki/Token-based-target-selection)介绍了实现一个端口,多个代理的方法。

在 websockify 项目的 Wiki 主页介绍了实现一个端口,多个代理的方法。

实现的原理就是 websocketproxy.py 这个代理从一个指定的 token 目录读取 token 文件,一个 token 文件通常对应一台客户机(虚拟机)。token文件内容形如 token1: host1:port1 ,这里的 token1 是全局唯一的一个字符串标识,host1 是客户机(虚拟机)所在的宿主机的 ip 地址,本例中就是 Node1 的 ip,而 port1 是客户机(虚拟机) VNC Server 的端口号,本例中就是 Guest1 的 VNC Server 的端口号。因此,本例中名为 generic 的客户机(虚拟机)Guest1 的 token 文件内容为:

  1. vnc123: 192.168.20.134:5901
  2. vnc234: 192.168.20.134:5902
  3. vnc345: 192.168.20.133:5901

注意:一个 token 文件可以对应一台客户机(虚拟机),一个 token 文件也可以对应多台客户机(虚拟机)。为了方便编程和管理,通常是一对一的关系,统一放在token目录下。

  1. [root@node2 websockify]# ll /usr/local/websockify/token/
  2. -rw-r--r-- 1 root root 28 5月 29 16:46 vnc123
  3. -rw-r--r-- 1 root root 28 5月 29 16:46 vnc234
  4. -rw-r--r-- 1 root root 28 5月 29 16:46 vnc345

3、启动代理

/usr/local/websockify/run --token-plugin TokenFile --token-source /usr/local/websockify/token/ 6080

如果是单个token文件,可以使用以下命令启动

/usr/local/websockify/run --target-config /usr/local/websockify/token/token 6080

三、访问vnc

使用Chrome、Firefox等浏览器访问(浏览器需支持html5)

我本人自己根据novnc的api文档,写了一个简单的demo,放在nginx服务下http://192.168.20.111/vnc.html?token=vnc123

如果是在novnc中启动websockify,则需要带--web参数,访问地址如下http://192.168.20.121:8080/vnc.html?path=?token=vnc123

PS:一定要带path=这个参数

websockify文档第1张

websockify文档第2张

免责声明:文章转载自《websockify文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇累加法跟我一起玩Win32开发(14):用对话框作为主窗口下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

斗鱼直播三面:说说JDK与JRE的区别是什么!

前言 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚...

【笔记】虚拟机安装树莓派系统

    无意中在官网发现这个,这是个能安装在PC上的树莓派系统。估计是官方想推广树莓派,先把树莓派系统推出让大家可以在PC上体验(瞎猜的)。不管出于什么原因,本着折腾的想法,装一个试试呗。 安装环境 操作系统:Windows 10 虚拟机:VMware 11.1.0 安装步骤1、下载Raspbian pi Desktop镜像 下载地址:h...

k8s集群部分常见问题处理

目录部分常见问题处理 Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题 添加工作节点时提示token过期 kubectl 执行命令报“The connection to the server localhost:8080 was refused” 网络组件flannel无法完成初始化 部分节点无法启动pod  最后  ...

微信开放平台开发(2) 网站应用微信登录

关键字:微信公众平台 微信开放平台 微信登录 微信扫码登录 使用微信账号登录网站作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-qrlogin.html   在这篇微信公众平台开发教程中,我们将介绍如何使用微信开放平台接口实现微信扫码登录的功能。 准备工作 网站应用微信登录是基于OAuth2.0协议标...

Windows访问令牌模拟窃取以及利用(T1134)

Token简介 Windows下有两种类型的Token Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录) Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹 两种token只在系统重启后清除,具有Delegation token的用户在注销后,该Toke...

MAC安装MySQL踩过坑

一、mac 10.13.4 安装mysql-workbench-community-8.0.11-rc-macos-x86_64.dmg   1)配置密码有强密码模式和弱密码模式,强密码要求必须大小写英文和特殊字符,如Admin_123   2)支持修改为弱密码 USE mysql;ALTER USER 'root'@'localhost' IDENTIF...