尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Rocky Linux 配置 Codex + DeepSeek-V4-Pro 完整方案:CC Switch 与 config.toml 骨架

Rocky Linux 配置 Codex + DeepSeek-V4-Pro 完整方案:CC Switch 与 config.toml 骨架 1. Rocky Linux 上让 Codex 用上 DeepSeek-V4-Pro 的真实痛点Codex CLI 是 OpenAI 出的终端编程助手能读代码、改文件、跑命令适合习惯在 SSH 里干活的人。但它默认只认 OpenAI 官方模型你想让它调用 DeepSeek-V4-Pro 这种推理强、价格友好的模型直接改环境变量是行不通的——Codex 的模型供应商走的是自己的协议层不是简单换个 base_url 就能通。Rocky Linux 作为 RHEL 系发行版软件源偏保守Node.js 版本经常卡在 16 或 18而 Codex 和 CC Switch 都要求 Node 20 以上。再加上服务器环境没有图形界面CC Switch 的 Web 端口、防火墙、本地路由这些环节任何一个没配对Codex 启动就是一连串连接错误。这篇方案要解决的就是这条链路在 Rocky Linux 9 上装好 Node.js 20、用 CC Switch 搭一个本地代理把 DeepSeek-V4-Pro 转成 Codex 能识别的接口、手写 config.toml 骨架、最后跑通验证。整套流程我实测下来关键卡点集中在 CC Switch 的本地路由开关和 config.toml 的 wire_api 字段上下面逐步拆开讲。适合谁看在 Rocky Linux 服务器上做开发、想用终端 AI 辅助编程、偏好 DeepSeek 模型能力、又不想被单一供应商绑死的同学。跟着做大概 20 分钟能跑通。2. 前置准备Node.js 环境与 TaoToken 统一 Key 通道2.1 Rocky Linux 安装 Node.js 20Rocky Linux 自带的dnf module里 Node.js 版本偏旧直接用 NodeSource 官方源装 20.x 最省事# 添加 NodeSource 20.x 源 curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - # 安装 Node.js 和 npm dnf install -y nodejs # 验证版本 node -v # 期望 v20.x 或更高 npm -v # 期望 10.x 或更高如果装完提示bubblewrap not found这是 Codex 沙箱组件的警告不影响核心功能想消除就补一个dnf install -y bubblewrap2.2 为什么用 TaoToken 做统一 Key 通道Codex 要调 DeepSeek-V4-Pro你得有一个能同时管住模型调用和 Key 的入口。TaoToken 在这里扮演的是统一 API 通道的角色你申请一个 Key就能在 Codex、CC Switch 以及后续其他工具里复用同一套凭证不用每个工具单独配一遍 DeepSeek 官方 Key也不用担心 Key 散落在多个配置文件里。TaoToken 的 API 地址是https://taotoken.net/api这个地址后面会填进 CC Switch 的供应商配置里。先去控制台把 Key 拿到手控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite拿到 Key 之后先别急着填等 CC Switch 装好了一起配。如果你还没决定用哪个模型可以先去模型对话页面试试 DeepSeek-V4-Pro 的响应风格https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite3. 可复制配置CC Switch 安装与 config.toml 骨架3.1 安装 CC SwitchCC Switch 是一个图形化的供应商配置工具它会在本地起一个代理服务把 Codex 的请求转发到你配置的模型后端。用 npm 全局装npm install -g ccswitch # 启动默认会尝试打开浏览器 ccswitchRocky Linux 服务器通常没有桌面环境浏览器打不开是正常的。CC Switch 默认监听15721端口你手动访问http://服务器IP:15721即可。如果服务器有防火墙先放行# firewalld 放行 15721 firewall-cmd --permanent --add-port15721/tcp firewall-cmd --reload3.2 在 CC Switch 里添加 DeepSeek 供应商打开 CC Switch 界面后操作路径是顶部切到Codex标签页 → 点右上角→ 选择DeepSeek预设 → 在弹窗里填 API Key。这里有个细节CC Switch 的 DeepSeek 预设默认 Base URL 指向 DeepSeek 官方地址你要把它改成 TaoToken 的 API 地址https://taotoken.net/api这样请求才会走统一通道。默认模型字段填deepseek-v4-pro如果你更看重响应速度可以填deepseek-v4-flash。填完保存。然后点右上角齿轮图标进设置找到路由页面打开本地路由总开关在路由启用区域打开Codex的开关记下本地代理地址默认是http://127.0.0.1:15721/v1这个地址就是 Codex 要连的入口端口号以你界面上实际显示的为准。3.3 安装 Codex CLInpm install -g openai/codex # 验证 codex --version # 期望显示版本号如 v0.140.0如果 npm 报EEXIST文件冲突加--force重装npm install -g openai/codex --force3.4 手写 config.toml 骨架CC Switch 声称能自动改 Codex 配置但实测下来手动写~/.codex/config.toml更可靠尤其是 wire_api 字段自动改经常漏。先建目录再编辑mkdir -p ~/.codex vi ~/.codex/config.toml写入以下完整骨架# 默认使用的模型 model deepseek-v4-pro # 默认供应商对应下面的 [model_providers.deepseek] model_provider deepseek [model_providers.deepseek] name DeepSeek # 关键指向 CC Switch 的本地代理地址 base_url http://127.0.0.1:15721/v1 # 环境变量名Codex 会从这里读 Key env_key DEEPSEEK_API_KEY # 关键使用 Responses API 协议否则 Codex 无法识别 wire_api responses几个字段的作用对照字段作用常见错误值model指定默认模型写成 deepseek-v4 导致找不到model_provider关联供应商块与下方块名不一致base_url本地代理入口端口写错或漏 /v1env_keyKey 的环境变量名与 export 的变量名不匹配wire_api协议类型写成 chat 导致请求格式错注意wire_api必须是responses。Codex 走的是 Responses 协议填成chat或留空都会导致请求被拒。3.5 设置环境变量把 Key 写进~/.bashrc避免每次手动输入echo export DEEPSEEK_API_KEY你的TaoToken Key ~/.bashrc source ~/.bashrc这里的变量名DEEPSEEK_API_KEY必须和 config.toml 里env_key的值完全一致大小写敏感。4. 验证请求启动 Codex 并确认模型生效4.1 确认 CC Switch 在运行CC Switch 必须保持运行状态本地代理才活着。检查进程ps aux | grep ccswitch同时确认 CC Switch 界面的路由页面显示已激活。如果进程掉了重新执行ccswitch启动。4.2 启动 Codexcodex预期输出里应该能看到model: deepseek-v4-pro high /model to change看到model: deepseek-v4-pro就说明 Codex 已经通过 CC Switch 连上了 DeepSeek-V4-Pro。此时直接输入问题比如「帮我看看当前目录的 package.json 有什么依赖」能正常返回就代表整条链路通了。4.3 验证请求确实走了 TaoToken 通道想确认请求没走偏可以在 CC Switch 的日志页面看请求记录或者临时把 config.toml 里的 base_url 改成一个错误端口重启 Codex 看是否报连接错误——如果报错说明配置确实生效了改回来即可。5. 本篇常见报错排查5.1 /model 命令只显示 ChatGPT 选项这是正常现象。通过本地代理接入的第三方模型不会出现在/model列表里Codex 只列出它原生认识的 OpenAI 模型。判断当前模型以启动界面显示的model: deepseek-v4-pro为准不用管/model列表。5.2 启动显示 Model metadata not foundCodex 拿不到 DeepSeek 模型的完整元数据这是个警告不影响对话功能直接忽略。如果你有强迫症可以在 config.toml 里补一个model_metadata块但没必要。5.3 Codex 无法启动或报连接错误按顺序排查三件事# 1. CC Switch 是否在跑 ps aux | grep ccswitch # 2. config.toml 里的端口是否和 CC Switch 显示的一致 grep base_url ~/.codex/config.toml # 3. 防火墙是否放行 15721 firewall-cmd --list-ports三个都确认没问题还报错检查DEEPSEEK_API_KEY是否真的 export 成功了echo $DEEPSEEK_API_KEY输出为空说明~/.bashrc没 source 或者写错了变量名。5.4 npm install 报 EEXIST文件冲突加--forcenpm install -g openai/codex --force5.5 提示 bubblewrap not found沙箱组件缺失装一下就行不影响核心功能dnf install -y bubblewrap5.6 请求返回 401 或鉴权失败大概率是 Key 的问题。去 TaoToken 的 API Keys 页面确认 Key 是否有效、有没有过期https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite如果 Key 没问题检查 CC Switch 里供应商配置的 Base URL 是不是https://taotoken.net/api填成别的地址会导致鉴权走错通道。6. 长期编码与 Agent 场景的接入建议如果你只是偶尔在终端问几个问题上面这套配置够用了。但如果你打算把 Codex 当成日常编码主力或者要跑 Agent 类的自动化任务建议把接入方式再规范一下。Codex 的接入文档里有更细的配置项说明包括超时、重试、并发这些参数值得花十分钟过一遍https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite对于需要长时间跑、频繁调用的编码场景Coding Plan 在配额和稳定性上更适合https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite如果你用的是 Claude Code 那套工具链接入方式略有不同可以参考这份说明https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-codeutm_campaignrewrite日常使用上模型切换直接改~/.codex/config.toml里的model字段然后重启 Codex 就行。deepseek-v4-flash适合快速补全和简单问答deepseek-v4-pro适合复杂推理和重构任务按任务类型选。每次开工前先确认 CC Switch 在跑再执行codex这个顺序别反了。
返回列表