LAN Pipes — 局域网跨机器通讯
概述
在现有 UDS (Unix Domain Socket) 本地 Pipe 通讯基础上,增加 TCP 传输层和 UDP Multicast 发现机制,使同一局域网内不同机器上的 Claude Code 实例可以互相发现、连接和双向通讯。Feature Flag
LAN_PIPES — dev/build 默认启用。也可通过 FEATURE_LAN_PIPES=1 环境变量启用。
架构
组件
1. PipeServer TCP 扩展 (pipeTransport.ts)
PipeServer.start()接受PipeServerOptions,可选启用 TCP 监听- 内部维护两个
net.Server— UDS + TCP,共享同一组 clients 和 handlers PipeServer.tcpAddressgetter 返回 TCP 端口信息
2. PipeClient TCP 扩展 (pipeTransport.ts)
- 构造函数新增可选
TcpEndpoint参数 connect()根据是否有 TCP endpoint 选择连接模式- 对下游调用者完全透明
3. LAN Beacon (lanBeacon.ts)
- UDP multicast 组:
224.0.71.67:7101 - 每 3 秒广播 announce 包,包含 pipeName、machineId、hostname、ip、tcpPort、role
- 15 秒无 announce 视为 peer lost
- TTL=1,仅 link-local,不跨路由器
4. Registry 扩展 (pipeRegistry.ts)
PipeRegistryEntry新增tcpPort?和lanVisible?字段mergeWithLanPeers()合并本地 registry 和 LAN beacon 发现的远端 peers
5. Peer Address (peerAddress.ts)
parseAddress()新增tcpscheme:tcp:192.168.1.20:7100parseTcpTarget()解析host:port字符串
使用方式
查看 LAN Peers
[LAN] 标记的远端实例。
连接远端实例
发送消息到 LAN Peer
tcp: scheme。
安全
- TCP 连接需用户显式同意(checkPermissions 返回
ask) - Multicast TTL=1,仅限链路本地
- 后续可增加 HMAC-SHA256 challenge 认证