文章目录太好使了命令行玩转WebSocketwebsocat真香太好使了命令行玩转WebSocketwebsocat真香websocat 是一个用 Rust 写的命令行 WebSocket 工具目前在 GitHub 上拿到了 8504 个 Star。它的定位很直接做 WebSocket 领域的 netcat、curl 和 socat把 WebSocket 的调试和对接拉回到命令行跟管线和脚本打配合。如果你经常在终端里调试 WebSocket 接口或者想在脚本里自动化处理 WebSocket 连接每次都要打开 Postman 或者现写一段 Python 代码有点折腾。websocat 把这些操作浓缩成了简单的命令行参数一行就能搞定。客户端和服务端通吃websocat 既能当 WebSocket 客户端去连接远端服务也能在本地启动一个 WebSocket 服务器。作为客户端直接指定 ws:// 或 wss:// 地址就能在终端里收发消息websocat ws://ws.vi-server.org/mirror作为服务端一行命令即可在指定端口上启动监听websocat-s1234更有用的是它的高级模式同时指定两个地址把数据从一端导向另一端。比如把本地的 TCP 服务通过 WebSocket 暴露出去websocat--binaryws-l:127.0.0.1:8080 tcp:127.0.0.1:5678或者反过来把远端的 WebSocket 服务转成本地的 TCP 端口。这种桥接能力在网络环境受限、需要通过 HTTP 端口穿透的场景里很有用。几十种地址类型和叠加层websocat 的设计思路和 socat 一脉相承提供了多种地址类型和叠加层overlay。地址类型决定了数据的来源和去向TCP、UDP、UNIX socket、文件读写、标准输入输出、外部程序、甚至 Chromium 的远程调试协议都可以作为数据的出入口。叠加层则在传输链路上做加工。TLS 加密和解密、自动断线重连、JSON RPC 格式化、消息广播、按分隔符拆分行、长度前缀帧格式、日志记录、SOCKS5 代理这些都有对应的 overlay 可以选用。举个例子通过管道往 Chrome DevTools 协议发指令打开指定网页echoPage.navigate {url:https://example.com}|websocat-n1--jsonrpcws://127.0.0.1:9222/devtools/page/...搭建一个消息广播也只需要一行websocat-tws-l:127.0.0.1:1234 broadcast:mirror:所有连上这个地址的客户端任意一个发出的消息都会被广播给其余所有人。-t参数用来指定发送文本帧。安装macOS 用户直接用 Homebrew 或 MacPorts 安装brewinstallwebsocatFreeBSD 也有官方包pkginstallwebsocatLinux 用户可以从 Releases 页面下载预编译的二进制文件或者通过 Rust 的 cargo 从源码编译cargoinstallwebsocatWebsocat 还提供了 Docker 镜像dockerrun--rm-tighcr.io/vi/websocat:nightly wss://ws.vi-server.org/mirror工具本身是单文件二进制依赖极少。Windows、macOS、Linux 三个平台都有预编译包部署几乎没有额外成本。适用场景调试 WebSocket 接口、在 CI/CD 流程里自动发送 WebSocket 消息、搭建 WebSocket 到 TCP 的双向桥接、配合 Nginx 做反向代理、在物联网设备之间收发消息只要涉及 WebSocket 通信websocat 基本都能派上用场。它不是什么大而全的重型框架而是 Unix 哲学里那种专心做好一件事的小工具。跟管道、shell 脚本、systemd 服务组合使用时灵活度很高。都能派上用场。它不是什么大而全的重型框架而是 Unix 哲学里那种专心做好一件事的小工具。跟管道、shell 脚本、systemd 服务组合使用时灵活度很高。
太好使了~,命令行玩转WebSocket,websocat真香
发布时间:2026/6/10 19:05:16
文章目录太好使了命令行玩转WebSocketwebsocat真香太好使了命令行玩转WebSocketwebsocat真香websocat 是一个用 Rust 写的命令行 WebSocket 工具目前在 GitHub 上拿到了 8504 个 Star。它的定位很直接做 WebSocket 领域的 netcat、curl 和 socat把 WebSocket 的调试和对接拉回到命令行跟管线和脚本打配合。如果你经常在终端里调试 WebSocket 接口或者想在脚本里自动化处理 WebSocket 连接每次都要打开 Postman 或者现写一段 Python 代码有点折腾。websocat 把这些操作浓缩成了简单的命令行参数一行就能搞定。客户端和服务端通吃websocat 既能当 WebSocket 客户端去连接远端服务也能在本地启动一个 WebSocket 服务器。作为客户端直接指定 ws:// 或 wss:// 地址就能在终端里收发消息websocat ws://ws.vi-server.org/mirror作为服务端一行命令即可在指定端口上启动监听websocat-s1234更有用的是它的高级模式同时指定两个地址把数据从一端导向另一端。比如把本地的 TCP 服务通过 WebSocket 暴露出去websocat--binaryws-l:127.0.0.1:8080 tcp:127.0.0.1:5678或者反过来把远端的 WebSocket 服务转成本地的 TCP 端口。这种桥接能力在网络环境受限、需要通过 HTTP 端口穿透的场景里很有用。几十种地址类型和叠加层websocat 的设计思路和 socat 一脉相承提供了多种地址类型和叠加层overlay。地址类型决定了数据的来源和去向TCP、UDP、UNIX socket、文件读写、标准输入输出、外部程序、甚至 Chromium 的远程调试协议都可以作为数据的出入口。叠加层则在传输链路上做加工。TLS 加密和解密、自动断线重连、JSON RPC 格式化、消息广播、按分隔符拆分行、长度前缀帧格式、日志记录、SOCKS5 代理这些都有对应的 overlay 可以选用。举个例子通过管道往 Chrome DevTools 协议发指令打开指定网页echoPage.navigate {url:https://example.com}|websocat-n1--jsonrpcws://127.0.0.1:9222/devtools/page/...搭建一个消息广播也只需要一行websocat-tws-l:127.0.0.1:1234 broadcast:mirror:所有连上这个地址的客户端任意一个发出的消息都会被广播给其余所有人。-t参数用来指定发送文本帧。安装macOS 用户直接用 Homebrew 或 MacPorts 安装brewinstallwebsocatFreeBSD 也有官方包pkginstallwebsocatLinux 用户可以从 Releases 页面下载预编译的二进制文件或者通过 Rust 的 cargo 从源码编译cargoinstallwebsocatWebsocat 还提供了 Docker 镜像dockerrun--rm-tighcr.io/vi/websocat:nightly wss://ws.vi-server.org/mirror工具本身是单文件二进制依赖极少。Windows、macOS、Linux 三个平台都有预编译包部署几乎没有额外成本。适用场景调试 WebSocket 接口、在 CI/CD 流程里自动发送 WebSocket 消息、搭建 WebSocket 到 TCP 的双向桥接、配合 Nginx 做反向代理、在物联网设备之间收发消息只要涉及 WebSocket 通信websocat 基本都能派上用场。它不是什么大而全的重型框架而是 Unix 哲学里那种专心做好一件事的小工具。跟管道、shell 脚本、systemd 服务组合使用时灵活度很高。都能派上用场。它不是什么大而全的重型框架而是 Unix 哲学里那种专心做好一件事的小工具。跟管道、shell 脚本、systemd 服务组合使用时灵活度很高。