☰
零出站网络的安全部署:claude-devtools Docker 独立模式与网络隔离完全指南
2026/9/26 1:42:18 网站建设 项目流程

零出站网络的安全部署:claude-devtools Docker 独立模式与网络隔离完全指南

【免费下载链接】claude-devtoolsThe missing DevTools for Claude Code — inspect session logs, tool calls, token usage, subagents, and context window in a visual UI. Free, open source.项目地址: https://gitcode.com/gh_mirrors/cl/claude-devtools

claude-devtools是 Claude Code 的开源可视化调试工具,能查看会话日志、工具调用、Token 用量、子代理和上下文窗口。它的 Docker 独立模式(Standalone)完全脱离 Electron 运行,零出站网络调用——无遥测、无分析、无自动更新,甚至可以以--network none彻底断网部署。本文是面向新手的完整部署指南,帮你把 Claude Code 的"黑箱行为"安全地放进浏览器里检查。

为什么选择独立模式?🔒

claude-devtools 有两种运行形态:

形态运行方式网络行为适用场景
Electron 桌面版桌面应用启动时检查 GitHub Releases 自动更新;可选 SSH 远程连接个人日常使用
Docker 独立模式Node.js HTTP 服务零出站调用,仅监听入站连接服务器部署、隔离审计、CI 环境

在独立模式下,自动更新器与 SSH 功能被完全禁用(见 standalone.ts 中的两个 No-op 存根),容器内唯一的网络活动就是 HTTP 服务器监听入站请求。这意味着你可以放心地把它部署在任何对网络敏感的环境中。

📖 完整的网络安全承诺见官方安全文档:SECURITY.md

一键启动:Docker Compose 最快部署方法

1. 获取源码

git clone https://gitcode.com/gh_mirrors/cl/claude-devtools cd claude-devtools

2. 构建并启动

docker compose up

然后打开http://localhost:3456即可看到完整的 Web 界面。

pre-commit.ci 与 Dockerfile。

3. 手动 Docker 命令方式(等效)

docker build -t claude-devtools . docker run -p 3456:3456 -v ~/.claude:/data/.claude:ro claude-devtools

⚠️ 注意:ro只读挂载——claude-devtools 只读取日志、从不写回,只读挂载从源头上杜绝了意外修改。

环境变量配置清单 🛠️

独立模式的入口逻辑在 src/main/standalone.ts,通过环境变量即可调整行为:

变量默认值作用
CLAUDE_ROOT~/.claude.claude数据目录路径(容器内为/data/.claude)
HOST0.0.0.0监听地址
PORT3456监听端口
CORS_ORIGIN*CORS 来源策略(Docker 隔离替代了 CORS 限制)

例如远程机器上数据目录不在默认位置时:

docker run -p 3456:3456 -e CLAUDE_ROOT=/data/.claude \ -v /remote/claude-data:/data/.claude:ro claude-devtools

配置会保存在CLAUDE_ROOT下的claude-devtools-config.json,首次启动自动创建,无需任何 API Key。

终极网络隔离:--network none 完全断网 🔥

这是本文的杀手锏。由于独立模式零出站调用,你可以直接让 Docker 不给容器分配任何网络栈:

docker run --network none -p 3456:3456 \ -v ~/.claude:/data/.claude:ro claude-devtools

或使用 Compose:取消注释 docker-compose.yml 末行network_mode: "none"。

官方安全文档中给出了同样的建议(SECURITY.md)。这样一来,即使代码中未来出现任何可疑的网络行为,也在操作系统层面无法发出——容器根本没有网络出口,这是比"承诺不联网"更强的信任保证。

启动后你会看到什么?👀

浏览器打开后是一个功能完整的 Web 界面,与桌面版体验一致:

  • 会话列表:按日期分组,支持跨会话搜索(Cmd+K 命令面板)
  • 工具调用检查器:每次 Read/Edit/Bash 调用的完整输入输出、内联 Diff
  • 上下文窗口分析:7 个类别的逐轮 Token 归属(CLAUDE.md、技能、@提及文件、工具 I/O、思考、团队协作、用户文本)
  • 项目记忆面板:MEMORY.md分层渲染,支持 wikilinks 导航

所有数据都来自容器内只读的~/.claude目录,会话数据永不离开你的机器。

安全设计细节 🧐

部署前值得了解的几道防线:

  1. 路径穿越防护:所有 IPC/HTTP 处理器做严格的路径包含检查,文件读取被限制在项目根和~/.claude内,敏感凭据路径直接拒绝(SECURITY.md)
  2. 只读数据流:应用不写回会话文件,挂载建议始终用:ro
  3. 构建瘦身:独立构建产物只有单个 CJS 文件(vite.standalone.config.ts),镜像为node:20-slim多阶段构建,攻击面最小化
检查项结果
出站连接0(可用--network none强制验证)
遥测 / 分析无
对~/.claude的写入无(只读挂载)
功能缺失自动更新、SSH 远程(均依赖 Electron,属预期行为)

源码导航 📂

想深入阅读,可以从这些文件入手:

  • 独立模式入口:src/main/standalone.ts
  • HTTP 服务与路由:src/main/http/index.ts
  • 构建配置:vite.standalone.config.ts
  • 安全说明:SECURITY.md
  • 部署模板:docker-compose.yml、Dockerfile

常见问题 ❓

Q: 独立模式不支持 SSH 远程会话?A: 对。SSH 管理依赖 Electron 桌面环境,独立模式内置了占位实现(见 standalone.ts)。如需远程会话,请在本机用桌面版。

Q: 能部署到内网服务器供团队共享吗?A: 可以,这正是独立模式的目标场景。把目标机器的.claude目录只读挂载进容器,团队通过浏览器访问即可——同时配合--network none实现双向隔离。

Q: 端口冲突怎么办?A: 用环境变量PORT修改监听端口,并同步修改-p映射即可。


总结:claude-devtools 的 Docker 独立模式只需一条docker compose up命令,就能获得零出站网络、只读数据、可彻底断网(--network none)的 Claude Code 会话审计能力。对于需要合规与数据主权的环境,这是目前最省心的部署方式。

【免费下载链接】claude-devtoolsThe missing DevTools for Claude Code — inspect session logs, tool calls, token usage, subagents, and context window in a visual UI. Free, open source.项目地址: https://gitcode.com/gh_mirrors/cl/claude-devtools

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询