目录

一、 核心架构:离线部署的三个支柱

二、 依赖包打包实践 (准备阶段)

1. Node.js 依赖打包

2. Python 依赖打包 (推理/底层支持)

3. 二进制文件打包 (关键步骤)

三、 内网部署与配置适配

1. 代理与网关重定向

2. 本地化初始化

四、 企业内网场景的避坑指南 (高危点)

五、 自动化部署脚本模板 (示例)

六、总结


如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

在高度受限的企业内网或物理隔离(无外网)环境中部署 Claude Code,核心挑战在于其依赖项极其复杂(通常包含大型 LLM 推理框架、Node.js 运行时、Rust 编译工具链以及特定版本的二进制库)。

要实现 Claude Code 的离线部署,不能简单地进行“复制粘贴”,必须构建一个**“离线镜像环境”**。以下是针对此类场景的完整实践路径。


一、 核心架构:离线部署的三个支柱

在无外网环境下,你需要准备以下三个核心组件,并将其打包迁移:

  1. 制品仓库(Registry/Mirror):
    • NPM Mirror: 企业私有 verdaccio 或 Artifactory,用于托管所有依赖的 JS 包。
    • PyPI/Pip Mirror: pip2pi 或 Artifactory,用于托管所有 Python 依赖。
    • Container Registry: 私有 Docker 镜像仓库(如 Harbor),用于托管 Claude Code 可能依赖的容器镜像。
  2. 二进制工具链迁移:
    • 包含 Node.js、Rust (cargo)、Python 解释器、Git、以及可能用到的系统级库(.so/.dll 文件)。
  3. 配置注入:
    • 在内网环境下,必须通过环境变量或配置文件修改 API Endpoint 地址,指向内网的 AI 网关(如果内网有反向代理)。

二、 依赖包打包实践 (准备阶段)

你需要在一个与生产环境 OS 完全一致的联网机器上进行“预热”。

1. Node.js 依赖打包

Claude Code 通常基于 Node 运行,使用 npm-bundle 或简单地打包 node_modules 是不行的,因为包含跨平台二进制文件。

  • 做法:
    • 在联网机上执行 npm install
    • 使用 tar -czvf dependencies.tar.gz node_modules 打包。
    • 关键点: 确保 package-lock.json 已锁定,以保证依赖的一致性。
2. Python 依赖打包 (推理/底层支持)
  • 做法:
    • 创建 requirements.txt
    • 执行下载:pip download -d ./offline_packages -r requirements.txt
    • 将 offline_packages 文件夹拷贝至内网机器,执行:pip install --no-index --find-links=./offline_packages -r requirements.txt
3. 二进制文件打包 (关键步骤)

Claude Code 可能依赖特定架构的二进制工具(如 esbuild 的二进制文件)。

  • 做法: 检查 node_modules 下的 .bin 目录,确保所有二进制文件在内网机器上都有执行权限,并且 ldd 指令检查缺失的系统共享库(如 libstdc++.so.6)。

三、 内网部署与配置适配

当所有包拷贝到内网后,需进行以下关键配置:

1. 代理与网关重定向

由于企业内网无法访问 OpenAI/Anthropic 公网 API,Claude Code 必须指向内网的一台 AI 转发服务器。

  • 环境变量设置:

export CLAUDE_API_URL="https://ai-gateway.internal.corp/v1"
export NODE_EXTRA_CA_CERTS="/path/to/internal-ca.crt" # 解决内网证书信任问题

2. 本地化初始化

不要通过 npm install -g 全局安装,建议以本地项目安装形式部署:

  • 将 Claude Code 解压到 /opt/claude-code
  • 配置 PATH 指向该目录的 bin 文件。

四、 企业内网场景的避坑指南 (高危点)

  1. 证书校验陷阱 (SSL/TLS):

    • 企业内网通常部署深信服或类似网关进行流量监控,它们会替换 SSL 证书。Claude Code 在进行 https 请求时会报错 self-signed certificate in certificate chain
    • 对策: 必须显式将企业的根证书链导出,并配置在 NODE_EXTRA_CA_CERTS 中。
  2. OS 库版本不一致:

    • 编译环境(联网机)与运行环境(内网机)的 glibc 版本差异是导致部署失败的主因。
    • 对策: 尽量使用 Docker 封装。在联网机构建 Docker 镜像,导出为 tar 包 (docker save),在内网机器 docker load 运行。这是企业级离线部署的最佳实践
  3. 匿名 Telemetry 阻塞:

    • Claude Code 会默认尝试连接外部域名发送匿名统计数据,在强防火墙环境下可能会导致进程阻塞甚至启动超时。
    • 对策: 通过环境变量 DISABLE_TELEMETRY=true 彻底关闭。

五、 自动化部署脚本模板 (示例)

在内网机器上编写一个 deploy.sh

#!/bin/bash
# 设置环境变量
export NODE_TLS_REJECT_UNAUTHORIZED=0 # 临时绕过内网证书校验
export DISABLE_TELEMETRY=true

# 安装 Python 依赖
pip install --no-index --find-links=./offline_packages -r requirements.txt

# 链接 Node 模块
ln -s $(pwd)/node_modules/.bin/claude /usr/local/bin/claude

echo "Claude Code Local Deployment Finished."

六、总结

Claude Code 的离线化,本质上是“环境容器化”的过程。 对于企业内网,放弃直接安装的幻想,直接采用 Docker 镜像打包方案(在联网机器构建 Docker 镜像,通过 docker save/load 迁移)是目前唯一能保证 100% 部署成功的方法。如果一定要物理机安装,则必须准备一套完整的内网镜像源(Verdaccio + Artifactory)。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

更多推荐