Linux 老系统装不上 Claude Code / Codex?一篇搞定
很多同学在服务器上尝试安装 Claude Code 或 OpenAI Codex 时,会遇到 GLIBC_2.25 not found 之类的报错,甚至连网都连不上。本文从网络配置到安装方法,手把手带你用最简单的方式解决这两个问题——全程不需要 root 权限。
一、问题描述
如果你的 Linux 服务器系统比较老(比如 CentOS 7),直接运行官方安装脚本大概率会碰到两堵墙:
第一堵墙:网络不通。 服务器无法直接访问 claude.ai、openai.com 等域名,安装脚本根本跑不起来。
第二堵墙:系统库版本太低。 即使网络通了,官方二进制文件依赖较新的 GLIBC(≥ 2.25),而 CentOS 7 自带的是 GLIBC 2.17,直接报错:
curl -fsSL https://claude.ai/install.sh | bashSetting up Claude Code.../home/anwy/.claude/downloads/claude-2.1.94-linux-x64: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/anwy/.claude/downloads/claude-2.1.94-linux-x64)/home/anwy/.claude/downloads/claude-2.1.94-linux-x64: /lib64/libc.so.6: version `GLIBC_2.24' not found (required by /home/anwy/.claude/downloads/claude-2.1.94-linux-x64)/home/anwy/.claude/downloads/claude-2.1.94-linux-x64: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /home/anwy/.claude/downloads/claude-2.1.94-linux-x64)
下面分两步各个击破。
二、解决网络问题:让服务器流量走代理
核心思路:你的本地电脑(Windows / Mac)已经具备了正常的网络访问能力,只需要把服务器的流量转发到本地电脑即可。根据你的网络环境不同,有两种方案可选。
方案 A:同一局域网——直接配置代理(最简单)
适用场景: 你的本地电脑和 Linux 服务器在同一个内网中(比如都连着公司网络或实验室网络),彼此之间可以直接通过内网 IP 互相访问。
第一步:本地电脑端配置
打开你正在使用的网络工具,找到类似"允许局域网连接"的选项并开启,然后记下对应的端口号(常见的默认端口是 7890 或 xxxx,不同工具可能不同)。
同时确认本地防火墙放行了该端口。Windows 用户(管理员)可以在 PowerShell 中执行:
netsh advfirewall firewall add rule name="Proxy" dir=in action=allow protocol=TCP localport=xxxx
然后查看本地电脑在局域网中的 IP 地址。Windows 上在 PowerShell 中运行 ipconfig,找到以太网适配器对应的 IPv4 地址,例如 172.0.0.0。
第二步:Linux 服务器端配置
在服务器上设置环境变量,让 HTTP/HTTPS 流量走本地电脑的代理。假设本地电脑 IP 为 172.0.0.0,端口为 xxxx:
export http_proxy=http://172.0.0.0:xxxxexport https_proxy=http://172.0.0.0:xxxxexport all_proxy=socks5://172.0.0.0:xxxx
验证一下是否生效:
curl -I https://www.google.comHTTP/1.1 200 Connection establishedHTTP/1.1 200 OKContent-Type: text/html; charset=ISO-8859-1
如果返回 HTTP/1.1 200 或 HTTP/2 200,说明网络已经打通了。
第三步:持久化(可选)
如果你希望每次登录服务器都自动生效,可以把上面三行写入 ~/.bashrc:
cat >> ~/.bashrc << 'EOF'export http_proxy=http://172.0.0.0:xxxxexport https_proxy=http://172.0.0.0:xxxxexport all_proxy=socks5://172.0.0.0:xxxxEOFsource ~/.bashrc
方案 B:不在同一局域网——SSH 端口转发
适用场景: 你的 Linux 是远程云服务器(比如阿里云、腾讯云、AWS),和你的本地电脑不在同一个内网中。这时候服务器直接填你本地电脑的 IP 是访问不通的,因为你的电脑藏在路由器后面,没有公网 IP。
这种情况下,我们可以借助 SSH 连接本身来"开一条隧道",把本地电脑的代理端口映射到服务器上。
原理简述
正常情况下,你已经在用 SSH 连接远程服务器了。SSH 除了让你敲命令,还支持端口转发功能——可以让服务器上的某个端口,通过这条 SSH 连接,"穿越"到你本地电脑的某个端口上。这样服务器访问自己的 127.0.0.1:xxxx,流量就会顺着 SSH 隧道转发到你本地电脑的 xxxx 端口,再从本地电脑走代理出去。
SSH端口转发示意图第一步:本地电脑端配置
和方案 A 一样,打开你网络工具的"允许局域网连接",记下端口号(例如 xxxx)。
这里有一个区别:方案 A 中代理需要监听局域网 IP,而方案 B 中代理只需要监听本机(127.0.0.1)就够了,因为 SSH 隧道连接的是你本地的 localhost。
第二步:建立 SSH 隧道
方式一:命令行
在本地电脑的终端中(Windows 可以用 PowerShell 或 cmd),运行:
ssh -R xxxx:127.0.0.1:xxxx user@your-server-ip
这条命令做了两件事:像平时一样 SSH 登录服务器,同时把服务器上的 xxxx 端口转发到你本地电脑的 127.0.0.1:xxxx。登录之后的终端就可以直接用了。
第三步:Linux 服务器端配置
隧道建立之后,服务器上的环境变量要指向 本机地址(因为隧道的出口就在本机上):
export http_proxy=http://127.0.0.1:xxxxexport https_proxy=http://127.0.0.1:xxxxexport all_proxy=socks5://127.0.0.1:xxxx
同样用 curl -I https://www.google.com 测试,通了就可以进入下一步了。
注意: SSH 隧道只在当前 SSH 连接存活期间有效。如果你断开了 SSH 重连,需要确保端口转发也一并重新建立。
方案选择小结
| | |
|---|
| | http://本机IP:端口 |
| | http://127.0.0.1:端口 |
三、解决 GLIBC 版本问题:用 Conda + npm 安装
网络通了以后,千万不要直接用官方的一键脚本——它下载的是预编译二进制文件,对 GLIBC 版本有硬性要求。我们换一条路:通过 npm 安装,对系统库的要求宽松得多,而且完全不需要 root。
3.1 安装 Node.js(如果还没有的话)
如果服务器上已经有 Conda(Anaconda 或 Miniconda),直接用 Conda 装 Node.js:
# 建一个干净的环境(也可以直接装在 base 里)mamba create -n ai-tools python=3.11 nodejs=20 -ymamba activate ai-toolsmamba install -c conda-forge nodejs=20Looking for: ['nodejs=20']
3.2 安装 Claude Code
npm install -g @anthropic-ai/claude-code
安装完成后直接运行:
claude
首次启动会引导你登录账号并完成授权,之后就可以在终端里愉快地使用了。
claude code 启动界面3.3 安装 OpenAI Codex(思路相同)
Codex CLI 同样是一个 npm 包:
npm install -g @openai/codex
安装后运行 codex 即可启动。
codex启动界面
四、常见问题速查
Q:设置了代理但 curl 还是超时?
首先确认本地电脑的"允许局域网连接"确实打开了;其次检查防火墙是否放行了对应端口;最后确认 IP 地址没有写错——用 ping 172.0.0.0(替换为你的实际 IP)测试基础连通性。
Q:npm install 时报权限错误?
这通常是因为 npm 全局目录指向了系统路径。用 Conda 环境可以自动规避这个问题。如果使用 nvm 安装的 Node.js,权限也不会有问题。
Q:能不能直接升级系统的 GLIBC?
强烈不建议。GLIBC 是系统底层核心库,手动升级极易导致系统崩溃,而且通常需要 root 权限。用 Conda + npm 的方案才是最安全的路径。
Q:每次都要手动 activate 环境?
可以在 ~/.bashrc 中加一行 conda activate ai-tools,这样登录就自动进入对应环境。
Q:SSH 隧道断开后代理就失效了怎么办?
SSH 端口转发依赖于 SSH 连接本身。如果你用 Termius 并且配置好了端口转发规则,每次重连都会自动建立隧道。如果是命令行方式,可以考虑使用 autossh 工具来保持隧道常连。
五、总结
整个流程其实就三步:
- 配置代理——如果同一局域网,直接填 IP;如果是远程服务器,用 SSH 端口转发打通隧道。
- 用 Conda 装 Node.js——绕开系统自带的老旧 GLIBC。
- 用 npm 安装工具——一行命令搞定 Claude Code 或 Codex。
全程不需要 root 权限,不需要编译任何东西,也不需要动系统底层库。希望这篇文章能帮到遇到同样问题的你。
撰稿:安万阳审核:宋雨婷发布:许林锋