LAN Pipes — 局域网多机器群控指南
什么是 LAN Pipes
LAN Pipes 让多台机器上的 Claude Code 实例通过局域网自动发现并协作。你可以在一台机器(main)上操控其他机器(sub)上的 Claude Code,发送 prompt、查看执行结果、审批权限请求——全程零配置。 基于本机 Pipe IPC(UDS_INBOX)扩展,新增 TCP 传输层 + UDP Multicast 发现。
前置条件
- 两台或以上机器在同一局域网
- 每台机器安装了 CCB 并能
bun run dev - Feature flag
LAN_PIPES(dev/build 默认开启) - 防火墙允许 UDP 7101 + TCP 动态端口(见下方配置)
快速开始
第一步:配置防火墙
每台机器都需要执行。 Windows(管理员 PowerShell):Get-NetConnectionProfile
macOS:
首次运行时系统弹出”允许接受传入连接”对话框,点击”允许”。
如果使用 pf 防火墙:
第二步:启动
第三步:查看和操作
在任一台机器上:第四步:选中目标并发送任务
- 按
Shift+↓展开选择面板 ↑↓移动到 LAN peerSpace选中Enter确认- 输入 prompt,自动路由到远端执行
完整命令参考
| 命令 | 说明 |
|---|---|
/pipes | 显示所有实例(本机 + LAN),Shift+↓ 展开选择面板 |
/pipes select <name> | 选中某实例 |
/pipes all | 全选 |
/pipes none | 取消全选 |
/attach <name> | 手动 attach(自动识别 LAN peer 并通过 TCP 连接) |
/detach <name> | 断开连接 |
/send <name> <msg> | 向指定 pipe 发送消息 |
/send tcp:host:port <msg> | 直接通过 TCP 地址发送 |
/claim-main | 强制声明为 main |
/pipe-status | 显示详细状态 |
/peers | 列出所有已发现的 peer |
快捷键
| 快捷键 | 场景 | 作用 |
|---|---|---|
Shift+↓ | 状态栏可见时 | 展开/收起选择面板 |
↑ / ↓ | 面板展开时 | 移动光标 |
Space | 面板展开时 | 选中/取消 |
Enter | 面板展开时 | 确认关闭 |
Esc | 面板展开时 | 取消关闭 |
← / → | 有选中 pipe 时 | 切换路由模式 |
M | 面板展开时 | 同 ←/→ 切换路由模式 |
路由模式
| 模式 | 显示 | 行为 |
|---|---|---|
selected pipes only | 绿色 | prompt 仅发送到选中的 pipe,本地不执行 |
local main | 灰色 | prompt 仅在本地执行,不转发 |
权限转发
当远端 slave 执行需要权限的工具(如 BashTool)时:- slave 发送
permission_request到 main - main 弹出权限确认对话框,显示
[role hostname/ip / pipeName] - 用户确认/拒绝
- 结果发回 slave,继续或中断
工作原理
发现机制
- 每台机器启动时创建 UDP multicast beacon
- 组地址
224.0.71.67,端口7101,TTL=1(不跨路由器) - 每 3 秒广播一次自身信息(pipeName、IP、TCP 端口、角色)
- 15 秒未收到广播则标记 peer 丢失
通信机制
- 本机实例:UDS(Unix Domain Socket / Named Pipe)
- 跨机器:TCP(动态端口,通过 beacon 发现)
- 协议:NDJSON(每行一个 JSON 对象)
- 消息类型:ping/pong、attach/detach、prompt/stream/done/error、permission
角色模型
| 角色 | 说明 |
|---|---|
main | 首个启动的实例 |
sub | 同机后续启动的实例 |
master | attach 了至少一个 slave 的实例 |
slave | 被 master attach 的实例 |
常见问题
看不到 LAN peer
- 检查防火墙是否放行 UDP 7101
Get-NetConnectionProfile(Windows)确认网络为”专用”- 确认两台机器在同一子网(
ping能通) - 路由器未开启 AP 隔离
连接超时
- 检查 TCP 入站防火墙规则
- 确认没有 VPN 劫持流量
- 尝试
/send tcp:ip:port hello直接测试
beacon 绑到了错误网卡
Windows 上 WSL/Docker 虚拟网卡可能劫持 multicast。beacon 会自动选择非内部 IPv4 接口。如果选错,检查getLocalIp() 返回值。
安全说明
- TCP 连接当前无认证——同 LAN 内知道端口号即可连接
- Multicast TTL=1,不跨路由器
- AI 通过
SendMessageTool发送tcp:消息时需用户显式确认 - 建议仅在信任的局域网中使用