Linux 服务器 Codex + DeepSeek 配置

文章目录

总体架构

复制代码
codex CLI  ──→  http://127.0.0.1:11435/v1/responses  ──→  ccswitch-deepseek  ──→  DeepSeek API
              (Responses API)                                (协议翻译)              (Chat Completions)
  • codex 只会说 Responses API
  • DeepSeek 只会说 Chat Completions API
  • ccswitch-deepseek 在中间做翻译,跑在服务器本地

一、安装 Codex CLI

bash 复制代码
# 安装 Node.js(如果没有)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# 安装 Codex CLI
npm install -g @openai/codex

# 验证
codex --version

二、配置 Codex(~/.codex/config.toml)

toml 复制代码
model_provider = "custom"
model = "deepseek-v4-flash"
model_reasoning_effort = "high"
disable_response_storage = true

[model_providers.custom]
name = "deepseek"
base_url = "http://127.0.0.1:11435/v1"
wire_api = "responses"
requires_openai_auth = true

各字段说明:

字段 含义
model_provider = "custom" 使用自定义模型供应商
model = "deepseek-v4-flash" 默认使用的模型名,会随请求传给 ccswitch-deepseek
model_reasoning_effort 推理深度:low / medium / high / xhigh
disable_response_storage = true 不上传数据到 OpenAI
base_url 指向 ccswitch-deepseek 代理地址,端口 11435
wire_api = "responses" 使用 Responses API 协议(Codex 的默认协议)
requires_openai_auth = true 发送认证头,ccswitch-deepseek 会拦截并替换

三、创建认证文件(~/.codex/auth.json)

json 复制代码
{
  "OPENAI_API_KEY": "PROXY_MANAGED"
}

API Key 实际由 ccswitch-deepseek 的 .env 文件管理,这里随便填,代理会拦截。

⚠️ 安全提醒.env 文件和 auth.json 文件权限设为 chmod 600 ~/.codex/auth.json


四、安装和配置 ccswitch-deepseek

4.1 克隆项目

bash 复制代码
mkdir -p ~/codex
cd ~/codex
git clone https://github.com/liuzhengming/ccswitch-deepseek.git
cd ccswitch-deepseek

4.2 安装依赖

bash 复制代码
npm install

4.3 配置 API Key

bash 复制代码
cp env_example .env

编辑 .env,填入 DeepSeek API Key:

复制代码
api_key=sk-your-deepseek-api-key-here
bash 复制代码
chmod 600 .env

4.4 启动

bash 复制代码
# 前台启动(测试用)
npm start

# 后台启动(推荐 tmux)
tmux new -s ccs
npm start
# Ctrl+B D  断开

# 或者 nohup
nohup npm start > /dev/null 2>&1 &

启动后看到这条就说明 OK:

复制代码
[ OK ] ccswitch-deepseek started
[INFO] http://127.0.0.1:11435/v1/responses

五、使用

bash 复制代码
# 在自己的项目目录下
codex --cd /path/to/your/project

# 或者直接
codex

六、添加更多模型

6.1 修改 config.toml

[model_providers.custom] 下可以添加多个供应商,切换模型只需改 model = 后面的值:

toml 复制代码
model_provider = "custom"
model = "deepseek-v4-flash"          # ← 默认模型
model_reasoning_effort = "high"
disable_response_storage = true

[model_providers.custom]
name = "deepseek"
base_url = "http://127.0.0.1:11435/v1"
wire_api = "responses"
requires_openai_auth = true

6.2 可用模型

ccswitch-deepseek 本身是动态透传 的------codex 发送什么 model 名字,代理就原样发给 DeepSeek。所以你要做的只是把 model = 改成 DeepSeek 支持的模型名:

model 值 对应模型
deepseek-v4-flash DeepSeek V4 Flash(快)
deepseek-v4-pro DeepSeek V4 Pro(强)
deepseek-r1 DeepSeek R1(推理)
deepseek-chat DeepSeek V3

6.3 如果需要接入其他供应商(Kimi / GLM / Qwen 等)

ccswitch-deepseek 目前只支持 DeepSeek。如需接入其他供应商,可以:

  1. 在服务器上也跑一个 cc-switch 桌面版(需要桌面环境)
  2. 或者搜其他类似的开源代理(如 one-api、new-api),在服务器部署后统一管理

七、开机自启(systemd)

bash 复制代码
sudo tee /etc/systemd/system/ccswitch-deepseek.service << 'EOF'
[Unit]
Description=CCSwitch DeepSeek Protocol Proxy
After=network.target

[Service]
Type=simple
User=xxx
WorkingDirectory=/home/xx/codex/ccswitch-deepseek
ExecStart=/usr/bin/node /home/xx/codex/ccswitch-deepseek/index.js
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable ccswitch-deepseek
sudo systemctl start ccswitch-deepseek

# 查看状态
sudo systemctl status ccswitch-deepseek

# 查看日志
sudo journalctl -u ccswitch-deepseek -f

八、端口号

ccswitch-deepseek 默认端口:11435

如需修改,编辑 index.js 末尾的端口号,同时同步修改 config.tomlbase_url


九、常见问题

问题 原因 解决
error sending request 代理没启动 npm start 先启代理
connection refused 端口不对 确认代理端口和 config.toml 一致
401 Unauthorized API Key 错误 检查 .env 文件
模型回复异常 模型名不对 确认 model = 的值 DeepSeek 支持
相关推荐
__Witheart__1 小时前
关于 uname 查看的内核版本号的后缀
android·linux·ubuntu·rockchip
爱吃生蚝的于勒1 小时前
QT开发第三章——常用控件
linux·服务器·开发语言·前端·javascript·c++·qt
Tairitsu_H1 小时前
告别默认Vim:Linux下轻松配置Vim开发环境
linux·编辑器·vim·配置
凯丨1 小时前
MCP Server 教程:从零构建一个自定义工具服务器(2026 最新)
运维·服务器
极客先躯1 小时前
高级java每日一道面试题-2026年02月08日-实战篇[Docker]-如何实现容器的快照和恢复?
java·运维·docker·容器·备份·持久化·恢复
AI服务老曹2 小时前
打破品牌壁垒:基于 Docker 的国标 GB28181 与 RTSP 异构视频流统一接入平台架构设计(可源码交付)
运维·docker·容器
wuminyu2 小时前
Java锁膨胀机制之偏向锁到轻量级锁源码剖析
java·linux·c语言·jvm·c++
xhtdj2 小时前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划
SuperArc19992 小时前
Grafana相关数据可视化平台基础教程-序言
运维·信息可视化·数据分析·grafana