vault backup: 2026-06-09 23:15:17

This commit is contained in:
2026-06-09 23:15:17 +08:00
parent 31fd89aafe
commit e92c0327d9
111 changed files with 7276 additions and 8846 deletions
+33 -20
View File
@@ -1,21 +1,28 @@
---
tags: [LAN, pipes, 局域网, 多机器, 群控, UDP, TCP]
create time: 2026-06-09 22:30
---
# 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 动态端口(见下方配置)
## 快速开始
### 快速开始
### 第一步:配置防火墙
#### 第一步:配置防火墙
**每台机器都需要执行。**
@@ -49,7 +56,7 @@ sudo iptables -A INPUT -p udp --dport 7101 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 1024:65535 -m owner --uid-owner $(id -u) -j ACCEPT
```
### 第二步:启动
#### 第二步:启动
```bash
# 机器 A(例如 192.168.50.22)
@@ -61,7 +68,7 @@ bun run dev
启动后等待 3-5 秒(beacon 广播间隔),两边自动发现并连接。
### 第三步:查看和操作
#### 第三步:查看和操作
在任一台机器上:
```
@@ -80,7 +87,7 @@ LAN Peers:
☐ [main] cli-04d67950 vmwin11/192.168.50.27 tcp:192.168.50.27:58853 [LAN]
```
### 第四步:选中目标并发送任务
#### 第四步:选中目标并发送任务
1. 按 `Shift+↓` 展开选择面板
2. `↑↓` 移动到 LAN peer
@@ -94,7 +101,7 @@ LAN Peers:
[main vmwin11/192.168.50.27 / cli-04d67950] Completed
```
## 完整命令参考
### 完整命令参考
| 命令 | 说明 |
|------|------|
@@ -110,7 +117,7 @@ LAN Peers:
| `/pipe-status` | 显示详细状态 |
| `/peers` | 列出所有已发现的 peer |
## 快捷键
### 快捷键
| 快捷键 | 场景 | 作用 |
|--------|------|------|
@@ -122,7 +129,7 @@ LAN Peers:
| `← / →` | 有选中 pipe 时 | 切换路由模式 |
| `M` | 面板展开时 | 同 ←/→ 切换路由模式 |
## 路由模式
### 路由模式
| 模式 | 显示 | 行为 |
|------|------|------|
@@ -131,7 +138,7 @@ LAN Peers:
切换路由模式不会清空选择。
## 权限转发
### 权限转发
当远端 slave 执行需要权限的工具(如 BashTool)时:
1. slave 发送 `permission_request` 到 main
@@ -139,23 +146,23 @@ LAN Peers:
3. 用户确认/拒绝
4. 结果发回 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
### 角色模型
#### 角色模型
| 角色 | 说明 |
|------|------|
@@ -166,28 +173,34 @@ LAN Peers:
跨机器 attach 时,两边都可以是 main——不要求对方必须是 sub。
## 常见问题
### 常见问题
### 看不到 LAN peer
#### 看不到 LAN peer
1. 检查防火墙是否放行 UDP 7101
2. `Get-NetConnectionProfile`(Windows)确认网络为"专用"
3. 确认两台机器在同一子网(`ping` 能通)
4. 路由器未开启 AP 隔离
### 连接超时
#### 连接超时
1. 检查 TCP 入站防火墙规则
2. 确认没有 VPN 劫持流量
3. 尝试 `/send tcp:ip:port hello` 直接测试
### beacon 绑到了错误网卡
#### beacon 绑到了错误网卡
Windows 上 WSL/Docker 虚拟网卡可能劫持 multicast。beacon 会自动选择非内部 IPv4 接口。如果选错,检查 `getLocalIp()` 返回值。
## 安全说明
### 安全说明
- TCP 连接当前**无认证**——同 LAN 内知道端口号即可连接
- Multicast TTL=1,不跨路由器
- AI 通过 `SendMessageTool` 发送 `tcp:` 消息时需**用户显式确认**
- 建议仅在信任的局域网中使用
## 关联笔记
- [[claude-code-best/docs/features/uds-inbox]]
- [[claude-code-best/docs/features/lan-pipes-implementation]]
- [[claude-code-best/docs/features/pipes-and-lan]]