安裝檔案選擇
https://github.com/vi/websocat/releases
我的 ubuntu 選擇 websocat.x86_64-unknown-linux-musl
$ wget https://github.com/vi/websocat/releases/download/v1.14.0/websocat.x86_64-unknown-linux-musl -O websocat
$ chmod +x websocat
$ sudo mv websocat /usr/local/bin/
測試是否能執行,查詢版本
$ websocat --version
連線到公用的 echo 伺服器
$ websocat ws://ws.vi-server.org/mirror
123
123
ABC
ABC
使用 docker 連線到公用的 echo 伺服器
$ docker run --rm -ti ghcr.io/vi/websocat:nightly wss://ws.vi-server.org/mirror
123
123
ABC
ABC
開啟接收伺服器
A$ websocat -s 1234
Listening on ws://127.0.0.1:1234/
ABC
123
連線伺服器,傳送資料
B$ websocat ws://127.0.0.1:1234/
ABC
123
安裝 chrome
$ sudo snap install chromium
啟動 chrome, 有遠端除錯模式
$ chromium --remote-debugging-port=9222&
用另一終端執行命令,在 chrome 中開啟分頁
$ curl -X PUT http://127.0.0.1:9222/json/new | grep webSocketDebuggerUrl | cut -d'"' -f4 | head -1
ws://127.0.0.1:9222/devtools/page/DC8E8EF5B872E141E8F60FDB4764F648
注意上個命令返回的網址,修改並執行下列命令
$ echo 'Page.navigate {"url":"https://example.com"}' | websocat -n1 --jsonrpc --jsonrpc-omit-jsonrpc ws://127.0.0.1:9222/devtools/page/DC8E8EF5B872E141E8F60FDB4764F648
在 chrome 的分頁網址上連到 https://example.com/
將 WebSocket 連線轉成 TCP
$ websocat --oneshot -b tcp-l:127.0.0.1:1234 ws://ws.vi-server.org/mirror&
$ nc 127.0.0.1 1234
使用 TCP 和 WebSocket 轉換,測試 ssh
$ websocat --oneshot -b ws-l:127.0.0.1:1234 tcp:127.0.0.1:22&
$ websocat --oneshot -b tcp-l:127.0.0.1:1236 ws://127.0.0.1:1234/&
$ nc 127.0.0.1 1236
SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9
aaaaasdf
Invalid SSH identification string.