自 sing-box 1.13.0 起
OCM
OCM(OpenAI Codex 多路复用器)服务是一个多路复用服务,允许您通过自定义令牌远程访问本地的 OpenAI Codex 订阅。
它在本地机器上处理与 OpenAI API 的 OAuth 身份验证,同时允许远程客户端使用自定义令牌进行身份验证。
结构
{
"type": "ocm",
... // 监听字段
"credential_path": "",
"usages_path": "",
"users": [],
"headers": {},
"detour": "",
"tls": {}
}
监听字段
参阅 监听字段 了解详情。
字段
credential_path
OpenAI OAuth 凭据文件的路径。
如果未指定,默认值为:
- 如果设置了 CODEX_HOME 环境变量,则使用 $CODEX_HOME/auth.json
- 否则使用 ~/.codex/auth.json
刷新的令牌会自动写回相同位置。
usages_path
用于存储聚合 API 使用统计信息的文件路径。
如果未指定,使用跟踪将被禁用。
启用后,服务会跟踪并保存全面的统计信息,包括: - 请求计数 - 令牌使用量(输入、输出、缓存) - 基于 OpenAI API 定价计算的美元成本
统计信息按模型以及可选的用户(启用身份验证时)进行组织。
统计文件每分钟自动保存一次,并在服务关闭时保存。
users
用于令牌身份验证的授权用户列表。
如果为空,则不需要身份验证。
对象格式:
对象字段:
name:用于跟踪的用户名标识符。token:用于身份验证的 Bearer 令牌。客户端通过设置Authorization: Bearer <token>头进行身份验证。
headers
发送到 OpenAI API 的自定义 HTTP 头。
这些头会覆盖同名的现有头。
detour
用于连接 OpenAI API 的出站标签。
tls
TLS 配置,参阅 TLS。
示例
服务端
客户端
在 ~/.codex/config.toml 中添加:
# profile = "ocm" # 设为默认配置
[model_providers.ocm]
name = "OCM Proxy"
base_url = "http://127.0.0.1:8080/v1"
supports_websockets = true
[profiles.ocm]
model_provider = "ocm"
# model = "gpt-5.4" # 如果最新模型尚未公开发布
# model_reasoning_effort = "xhigh"
然后运行:
带身份验证的示例
服务端
{
"services": [
{
"type": "ocm",
"listen": "0.0.0.0",
"listen_port": 8080,
"usages_path": "./codex-usages.json",
"users": [
{
"name": "alice",
"token": "sk-ocm-hello-world"
},
{
"name": "bob",
"token": "sk-ocm-hello-bob"
}
]
}
]
}
客户端
在 ~/.codex/config.toml 中添加:
# profile = "ocm" # 设为默认配置
[model_providers.ocm]
name = "OCM Proxy"
base_url = "http://127.0.0.1:8080/v1"
supports_websockets = true
experimental_bearer_token = "sk-ocm-hello-world"
[profiles.ocm]
model_provider = "ocm"
# model = "gpt-5.4" # 如果最新模型尚未公开发布
# model_reasoning_effort = "xhigh"
然后运行: