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 支持
相关推荐
orion573 小时前
Missing Semester Class1:course overview and introduction of shell
linux
SkyWalking中文站8 小时前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
用户1204872216110 小时前
Linux驱动编译与加载
linux·嵌入式
程序员老赵11 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位11 小时前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
vivo互联网技术15 小时前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
用户8055336980316 小时前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户8055336980316 小时前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生