这是 websockify 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
websockify - WebSockets 到 TCP 套接字桥接器
概要
websockify [选项] [source_addr:]source_port target_addr:target_port
websockify [选项] [source_addr:]source_port -- WRAP_COMMAND_LINE
配置
-h,--help显示此帮助消息并退出
-v, --verbose 详细消息和每帧流量
--record=FILE 将会话记录到 FILE.[session_number]
-D, --daemon 成为守护进程(后台进程)
--run-once 处理单个 WebSocket 连接并退出
--timeout=TIMEOUT 未连接时退出 TIMEOUT 秒后
--cert=CERT SSL 证书文件
--key=KEY SSL 密钥文件(如果与证书分开)
--ssl-only 禁止非加密连接
--web=DIR 在同一端口上运行网络服务器。 从 DIR 提供文件。
--wrap-mode=MODE 当被包装的程序退出或
守护进程:退出(默认)、忽略、重生
商品描述
在最基本的层面上,websockify 只是将 WebSockets 流量转换为正常的 TCP
套接字流量。 Websockify 接受 WebSockets 握手,解析它,然后开始
在客户端和目标之间双向转发流量。
websockify 以前被命名为 wsproxy 并且是 noVNC 项目的一部分。
附注
WebSockets的 二进制 data
Websockify 支持所有版本的 WebSockets 协议(Hixie 和 HyBI)。 年长的
该协议的 Hixie 版本仅支持 UTF-8 文本有效负载。 为了运输
UTF-8 上的二进制数据必须使用一种编码来将数据封装在 UTF-8 中。
Websockify 使用 base64 对进出客户端的所有流量进行编码。 这不影响
websockify 和服务器之间的数据。
加密 WebSocket的 连接 (wss://)
要使用 WebSocket 'wss://' URI 方案加密流量,您需要生成一个
用于加载 websockify 的证书。 默认 websockify 加载证书文件名
self.pem 但 --cert=CERT 选项可以覆盖文件名。 您可以生成一个自
使用 openssl 签署的证书。 当要求提供通用名称时,请使用主机名
将运行代理的服务器:
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
网袜 使用Javascript 图书馆
websock.js(参见 https://github.com/kanaka/websockify)Javascript 库
提供了一个类似于标准 WebSocket 对象的 Websock 对象,但 Websock
通过 websockify 启用与原始 TCP 套接字(即二进制流)的通信。 这个
是通过对 Websock 和 websockify 之间的数据流进行 base64 编码来实现的。
Websock 内置了接收队列缓冲; 消息事件不包含实际
数据,但只是有新数据可用的通知。 几种 rQ* 方法
可用于从接收队列中读取二进制数据。
Websock API 记录在 websock.js API wiki 页面上:
https://github.com/kanaka/websockify/wiki/websock.js
有关使用 Websock 和 websockify 的示例,请参阅下面的“包装程序”部分
浏览器 telnet 客户端 (wstelnet.html)。
额外 网客化 功能
这些对于基本操作不是必需的。
* Daemonizing:当指定-D选项时,websockify在后台运行为
一个守护进程。
* SSL(wss://WebSockets URI):这是由 websockify 自动检测的
嗅探从客户端发送的第一个字节,然后包装套接字,如果
数据以 '\x16' 或 '\x80' 开头(表示 SSL)。
* Flash 安全策略:websockify 检测 Flash 安全策略请求(再次通过
嗅探第一个数据包)并使用适当的闪存安全策略回答
响应(然后关闭端口)。 这意味着没有单独的闪存安全策略
服务器需要支持 Flash WebSockets 回退模拟器。
* 会话记录:此功能允许记录发送的流量和
使用 --record 选项从客户端接收到文件。
* 迷你网络服务器:websockify 可以检测和响应正常的网络请求
与 WebSockets 代理和 Flash 安全策略相同的端口。 这个功能是
使用 --web DIR 选项激活,其中 DIR 是 Web 目录的根目录
服务。
* 打包程序:请参阅下面的“打包程序”部分。
饺子皮 a 曲目
除了从源地址代理到目标地址(可能位于
不同的系统),websockify 有能力在本地系统上启动程序和
将 WebSockets 流量代理到程序拥有/绑定的普通 TCP 端口。
这是通过一个小的 LD_PRELOAD 库(rebind.so)完成的,它拦截了 bind()
程序的系统调用。 指定端口移动到新的本地主机/环回免费
高端口。 然后 websockify 将指向原始端口的 WebSockets 流量代理到
程序的新(移动)端口。
通过将目标替换为 -- 后跟程序来调用程序包装模式
命令行来换行。
`./websockify 2023 -- 程序参数`
--wrap-mode 选项可用于指示当包装
程序退出或守护进程。
下面是一个使用 websockify 来包装 vncserver 命令的例子(它的背景是
本身)与 noVNC 一起使用:
`./websockify 5901 --wrap-mode=ignore -- vncserver -geometry 1024x768:1`
这是包装 telnetd 的示例(来自 krb5-telnetd)。telnetd 在
连接关闭,因此包装模式设置为重新生成命令:
`sudo ./websockify 2023 --wrap-mode=respawn -- telnetd -debug 2023`
wstelnet.html 页面演示了一个简单的基于 WebSockets 的 telnet 客户端。
使用 onworks.net 服务在线使用 websockify