vm-ssh-bridge
v0.1.0-a1
Published
Simple local message bridge (UNIX socket) for VM SSH
Readme
ssh-bridge
https://github.com/fm-elpac/ssh-bridge
一个用于本地 UNIX socket 通信的简单消息桥接器.
项目结构
ssh-bridge/
├── src/
│ ├── protocol.ts # 协议解析和格式化
│ ├── sb-server.ts # 服务端实现
│ └── sb-client.ts # 客户端实现
├── bin/
│ ├── sb-server.js # 编译后的服务端
│ └── sb-client.js # 编译后的客户端
├── systemd/
│ └── sb-server.service # Systemd 用户服务
└── README.md安装
编译项目:
deno bundle src/sb-server.ts -o bin/sb-server.js deno bundle src/sb-client.ts -o bin/sb-client.js安装到
~/.ssh-bridge/:mkdir -p ~/.ssh-bridge/ cp bin/sb-server.js bin/sb-client.js ~/.ssh-bridge/安装 systemd 服务:
mkdir -p ~/.config/systemd/user/ cp systemd-user/sb-server.service ~/.config/systemd/user/ systemctl --user daemon-reload systemctl --user enable --now sb-server
协议
协议使用带通道头的逐行 JSON 消息:
channel: { "json": "data" }channel: 通道名称 (不允许包含冒号){ "json": "data" }: JSON 数据
服务端 (sb-server)
- 在 UNIX socket
$XDG_RUNTIME_DIR/ssh-bridge/server上监听 - 将收到的所有消息广播到所有连接的客户端
- 作为 systemd 用户服务运行
客户端 (sb-client)
命令行选项
--pub <channel>: 指定要发布的通道 (默认: "default", 可多次使用)--sub <channel>: 指定要订阅的通道 (默认: 全部, 可多次使用)
使用方法
# 订阅所有通道并发布到默认通道
sb-client
# 订阅特定通道
sb-client --sub AAA --sub BBB
# 发布到特定通道
sb-client --pub mychannel示例
终端 1:
sb-client --sub log终端 2:
sb-client --pub log
log: {"message": "hello"}LICENSE
MIT
