所属专题簇:运行协议与接入面
Claude Code 在远程环境和容器环境里,如何维持会话连接和网络接入?
Bridge / Remote 只是远程能力的上层接口;更底层还有 direct connect、server 侧会话管理和 upstream proxy,这些共同支撑 Claude Code 的非本地运行形态。
这一章解释 direct connect session、server 侧连接管理和 CCR 容器中的 upstream proxy 设计。
- Claude Code 不是只在本地进程里运行。
- 远程运行需要同时解决会话连接、权限交互和容器网络接入。
- upstream proxy 说明 Claude Code 已经考虑到受控容器环境中的代理与证书问题。
- direct connect 管理:src/server/directConnectManager.ts
- server 目录:src/server/
- upstream proxy:src/upstreamproxy/upstreamproxy.ts
- relay:src/upstreamproxy/relay.ts
flowchart TD
A["本地或宿主 Claude Code"] --> B["direct connect session"]
B --> C["WebSocket / server manager"]
C --> D["remote session messages"]
D --> E["容器内 agent process"]
E --> F["upstream proxy relay"]
F --> G["外部 HTTPS / WebSocket 网络"]
src/server/directConnectManager.ts 可以直接确认:
- 会建立 WebSocket
- 支持 auth header
- 会处理
SDKMessage - 会转发 permission request
这说明 direct connect 并不是普通远程 shell,而是围绕 Claude Code control message 设计的专用连接方式。
src/upstreamproxy/upstreamproxy.ts 顶部注释非常完整,直接列出它会做的事情:
- 读取 session token
- 设置
PR_SET_DUMPABLE - 下载并拼接 CA bundle
- 启动 CONNECT 到 WebSocket relay
- 暴露
HTTPS_PROXY/SSL_CERT_FILE
这已经远超“开个代理地址”这么简单,说明 Claude Code 需要在受控远程环境中稳定地为子进程和外部工具提供网络接入。
这一层说明 Claude Code 的远程能力不是只有 UI 层的 remote session,而是已经深入到:
- 容器运行
- 安全代理
- 会话凭证管理
- 工具子进程的网络环境
这很像一个真正的远程 agent 运行基础设施。
10章讲的是远程产品面;这一章讲的是远程基础设施面。- direct connect 和 upstream proxy 说明 Claude Code 已经适配受控远程环境。
- 研究远程能力时,不能只看
bridge和remote,还要看server和upstreamproxy。