一个命令行工具,可把任意读写 STDIN/STDOUT 的程序封装成 WebSocket 服务。
vi/websocat
命令行 WebSocket 客户端与服务端工具,可用于 ws:// 和 wss:// 连接,类似 netcat、curl 和 socat。
- Star
- 8,732
- Fork
- 334
- 未关闭 Issue
- 161
- 最近提交
- 2个月前
这是什么?
websocat 是一个用于操作 WebSocket 的命令行工具。它可以连接到 WebSocket 地址并将标准输入输出与之相连,也能在指定端口提供 WebSocket 服务,还可以把 WebSocket 与 TCP、UNIX 套接字、UDP 或外部程序等其他传输方式互相转发,适合在终端中快速调试 WebSocket 接口。
除基本连接外,它还支持类似 socat 的组合用法:消息可在行与消息之间转换,支持 Base64 编码、压缩、JSON-RPC 封装,也能用字节序列作为结束标记。工具还支持 TLS、自定义 HTTP 头、Sec-WebSocket-Protocol 协商、SOCKS5 代理、断线自动重连、向多个客户端广播以及 Prometheus 指标导出。预编译版本覆盖 Linux、Windows 和 macOS,也可通过 FreeBSD pkg、Homebrew 等方式安装。
当前主流的 v1 版本使用 Rust 编写,通过 cargo 构建。v4 alpha 版本在独立分支中开发,尚未被视为稳定版本。
核心功能
- 01连接 ws:// 与 wss:// 地址,并将标准输入输出转换为 WebSocket 消息
- 02在命令行中直接提供 WebSocket 服务
- 03将 WebSocket 与 TCP、UNIX 套接字、UDP 及外部程序互相转发
- 04支持按行或二进制模式处理消息,并提供 Base64 与 JSON-RPC 转换
- 05支持 TLS、自定义请求头、SOCKS5 代理和断线自动重连
适用场景
- 无需编写客户端代码,直接在终端调试 WebSocket 接口
- 通过发送消息并读取回复来测试 WebSocket 服务
- 将 SSH 等 TCP 服务通过 WebSocket 连接转发出去
- 在脚本中调用 Chromium DevTools 的 WebSocket 接口
快速上手
- 1
在 macOS 上用 Homebrew 安装
brew install websocat - 2
连接公共回显服务器,然后输入消息(按 Ctrl+d 退出)
websocat ws://ws.vi-server.org/mirror
使用前须知
- 使用较新的 Rust 工具链从源码构建时可能失败,因为 v1 版本的部分依赖较旧。
- 在 Android 上,wss:// 连接可能失败,需要手动指定证书包。
收录于专题
标签
常见问题
- websocat 是什么?
- 命令行 WebSocket 客户端与服务端工具,可用于 ws:// 和 wss:// 连接,类似 netcat、curl 和 socat。 websocat 是一个用于操作 WebSocket 的命令行工具。它可以连接到 WebSocket 地址并将标准输入输出与之相连,也能在指定端口提供 WebSocket 服务,还可以把 WebSocket 与 TCP、UNIX 套接字、UDP 或外部程序等其他传输方式互相转发,适合在终端中快速调试 WebSocket 接口。
- websocat 可以免费使用吗?用的什么许可证?
- websocat 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- websocat 还在维护吗?
- 半年内有更新。websocat 最近一次提交是在 2026年8月13日。
- websocat 适合用来做什么?
- 无需编写客户端代码,直接在终端调试 WebSocket 接口 通过发送消息并读取回复来测试 WebSocket 服务 将 SSH 等 TCP 服务通过 WebSocket 连接转发出去 在脚本中调用 Chromium DevTools 的 WebSocket 接口
- websocat 怎么安装和运行?
- 在 macOS 上用 Homebrew 安装: brew install websocat 连接公共回显服务器,然后输入消息(按 Ctrl+d 退出): websocat ws://ws.vi-server.org/mirror
- 在哪里获取 websocat?
- 源代码和安装说明在 GitHub 上:https://github.com/vi/websocat
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款通过 URL 在服务器之间传输数据的命令行工具与库,支持 HTTP、FTP、SFTP、SMTP 等多种协议。
一款支持 TLS 的交互式拦截 HTTP 代理,提供终端、命令行和 Web 三种界面,用于查看 HTTP/1、HTTP/2 和 WebSocket 流量。
一个基于事件驱动的 Go WebSocket 服务端与客户端库,支持 TCP、KCP 与 Unix 域套接字。
面向 Unix 命令与编程语言的速查服务,可通过 curl、命令行客户端和编辑器插件直接访问。
一款终端网络诊断工具,结合了 traceroute 与 ping 的功能,用于分析网络连通性问题。