部署OmniRoute免费AI网关一键反代opencode实现tokens自由
摘要
OmniRoute 是一个支持 50 多家免费模型供应商的大模型 API 服务平台,其中 OpenCode 和 mimocode 免鉴权。本文介绍如何使用 Docker Compose 部署该服务。步骤包括登录设置密码、添加免鉴权提供商 OpenCode free、创建统一 API 密钥。使用时需解析域名,在 Agent 中配置自定义模型,接口地址为 `http://域名/V1`,模型名称为 `auto`。项目功能丰富,适合需要统一接口的开发者。
前言
玩大模型 API 的朋友,应该都遇到过"供应商太多、每个都要注册、每个鉴权方式还不一样"的麻烦。要是能有一个统一的入口,把所有供应商都接进去,用一套 API 就能随意切换调用,那该多省心。
OmniRoute 就是干这个的——它是一个大模型 API 服务平台(网关),可以添加各大模型供应商,统一用一套 API 接口访问,方便各种 AI 应用调用。
它最吸引我的一点是:内置了 50 多家免费平台,其中 opencode 和 mimocode 的免费 token 还是免鉴权的,用起来非常省事——不用注册、不用填一堆 Key。本文就记录一下怎么用 Docker 部署它,并重点演示如何反代免鉴权的 opencode,让 OpenCode 这类工具直接白嫖到可用的模型端点。
项目地址:https://github.com/diegosouzapw/OmniRoute
说明:OmniRoute 功能很多,本文只讲"反代免鉴权 opencode"这条最常用的路径。如果你想要更简单的方案,可以参考我之前介绍的 FreeLLMAPI 那篇。
先搞懂"免鉴权"是什么意思
这是全文最需要先理解的概念,因为它直接决定了这套方案能用来干什么、不能用来干什么。
平时接入一个模型平台,流程是:注册账号 → 申请 API Key → 把 Key 填进你的工具。Key 的作用是标识"这次调用是谁发出的",以便计费和限流。
"免鉴权"指的是:这个端点根本不需要 Key 就能调用。 一般有两种来源:
平台自己开放的公开测试端点——为了让开发者在注册前就能试效果,故意不校验身份
项目方/社区托管的共享端点——某个人或组织自己垫付了费用,把它开放出来给大家用
所以"免鉴权"的代价你必须心里有数:
优点 | 代价 |
|---|---|
零门槛,不用注册不用填 Key | 稳定性没有承诺——开放方随时可能关停 |
立刻能用,省去申请流程 | 可能有隐性速率限制,高峰期容易失败 |
适合快速验证、临时救急 | 数据去向不明——你的请求内容经过了谁的服务器,不清楚 |
我的建议很明确:免鉴权端点用来"试"和"临时救急",不要用来跑"不能失败"的事情,更不要拿它处理任何敏感内容。 要稳定用,还是老老实实申请自己的 Key(免费大模型 API 资源汇总那篇里整理了一大批),填进网关里。
部署
采用 docker compose 的方式部署,最省心。
新建一个 docker-compose.yml,内容如下:
然后在 docker-compose.yml 所在目录执行:
等镜像拉取并启动完成即可。

这份配置里有两行容易被忽略但值得知道:
① stop_grace_period: 40s —— 这是"优雅停机"的等待时间。容器收到停止信号后,Docker 不会立刻杀掉它,而是等最多 40 秒让它把手头正在处理的请求做完。为什么这里特意设长了:大模型的响应本来就慢,一个请求可能跑十几秒。如果按默认的 10 秒就强杀,正在生成的回复会直接断掉。所以这类"代理型"服务都建议把宽限期调大。
② omniroute-data:/app/data —— 数据卷,存的是你配置的供应商、账号、统一 API Key。别删,删了等于重头配一遍。
另外,ports 直接映射到 20128:20128,意味着容器端口直接暴露在宿主机上。如果你的服务器有公网 IP,这一步之后 OmniRoute 就已经可以被外部访问了。所以第 1 步的密码一定要设,且别用弱密码——它是这套服务唯一的门。
教程
第 1 步:访问管理页面并设置密码
部署完成后,浏览器访问:
首次登录时,平台会提示你先设置一个登录密码,设置好之后用它登录后台。

第 2 步:添加"免鉴权"提供商
登录后台后,进入添加提供商的入口。重点关注**"免鉴权提供商"(也叫"无需凭证的开放端点")这一类——它们无需注册、立即就能用**,正是我们想要的。

第 3 步:选择 OpenCode free
在免鉴权列表里,找到 OpenCode free(或 mimocode free),点进去添加。点 添加账号 后,平台会自动帮你生成一个 key,不用你手动填任何凭证。

这就是"免鉴权"的方便之处——不用注册、不用自己去申请 Key,平台全自动生成。
这里要注意一个概念上的区分:网关自动生成的这个 key,是网关自己发给你的"门禁卡",不是上游平台的凭证。也就是说——它在网关内部标识"这是本机的一个通道",上游那次调用其实是不带凭证的。所以这个 key 泄露的后果是"别人能通过你的网关消耗额度",而不是"别人拿到了你的账号"。 风险级别不同,但依然要保管好。
第 4 步:创建统一 API 密钥
添加完账号后,进入 API 管理,创建一个统一的 API 密钥。这个 key 就是你之后给各种 AI 应用用的"统一入口凭证"。

"账号"和"API 密钥"是两层,很多人会在这里绕晕:
提供商账号 = 网关去连上游用的(比如那个免鉴权的 OpenCode free 端点)
统一 API 密钥 = 你的应用来连网关用的
所以调用链是:你的应用 → (统一密钥)→ OmniRoute → (上游凭证或无凭证)→ 模型平台。改上游只动第一层,应用侧不用改——这就是网关的核心价值。
使用
到这一步,网关就配好了。接下来是怎么让 OpenCode 这类 agent 用上它。
(推荐)给服务解析一个域名:为了方便长期使用,建议给这台服务器的 OmniRoute 服务绑定一个域名,免得老记 IP 和端口。
在自己的 agent 里添加模型,选择"自定义模型"。
接口地址填写:
http://服务器ip(或域名)/v1模型名称填写:
auto
这样设置后,你的 agent 就会通过 OmniRoute 这个网关,自动路由到后端接好的(免鉴权的 opencode 等)模型上。

关于地址里的 /v1 和模型名 auto,各有一个知识点:
/v1是 OpenAI 兼容接口的约定路径。几乎所有"支持自定义 API 地址"的工具,都会在你填的 Base URL 后面自动拼/chat/completions之类。所以Base URL 必须填到/v1为止,不能多也不能少——填成根目录会变成请求一个不存在的地址,填到/v1/chat又会拼重复。这是接网关时最高频的报错来源。auto是让网关自己决定用哪个上游(前面说的"路由")。如果你指定一个具体模型名,网关就会去找支持该模型的上游。
如果打算长期用,务必上 HTTPS:走 http:// 的话,你的统一 API Key 是明文在网络里传输的,中途节点都能抓走。反代配个证书最省事。
常见问题与排错
1. 访问 http://ip:20128 打不开
确认容器已启动(
docker compose ps)。确认服务器防火墙/安全组放行了 20128 端口。
如果服务器有公网 IP 但你只想内网访问,其实不该直接映射端口,应该绑到
127.0.0.1再用反代转发——这样即使忘了改密码也不会被人从公网撞进来。
2. agent 连不上 / 报接口错误
确认接口地址写的是
/v1(注意是 v1 小写),且 ip/域名能访问。确认统一 API key 填对了。
确认模型名写的是
auto(或上游确实存在的模型名)。模型名拼错时,有些工具报的错很含糊,容易被误判成网络问题。
3. 昨天还能用,今天全报错
大概率是免鉴权上游挂了或被限流了。这类端点没有可用性承诺,出问题很正常。处理办法是在后台再加一个带自己 Key 的供应商(比如 OpenRouter),让 auto 有备选可路由。
4. 想要更多供应商
OmniRoute 内置 50 多家免费平台,都可以在后台添加,不止 opencode。按需加即可。
我的结论
用下来,OmniRoute 这种"统一网关"的思路确实省心——把多个供应商收拢到一个入口,以后想换模型,后台加个供应商就行,agent 那边不用动。尤其它内置那么多免鉴权的免费平台,对想白嫖模型额度、又不想逐个注册申请 Key 的朋友非常友好。
不过它功能确实比较多,面板左侧的工具栏一眼看过去还挺唬人,要完全用好需要花点时间研究。如果你只是想要一个"简单、能用"的方案,不一定非要上 OmniRoute——像 FreeLLMAPI 那种更轻量的方案可能更适合你:界面直白、部署快,也自带免费模型获取链接。
两者怎么选,我总结一下:
FreeLLMAPI | OmniRoute | |
|---|---|---|
上手 | 简单,几分钟能跑通 | 功能多,要花点时间摸 |
免鉴权上游 | 无 | 有(不用注册就能用) |
适合 | 手上有几个 Key,想合起来用 | 想集中管理多家、连注册都嫌烦 |
如果你玩得比较深、想在一个地方管理多个模型供应商,那 OmniRoute 值得一试,按上面的步骤十几分钟就能跑起来。但请记住开头那句:免鉴权端点只当"临时资源"用,别把正经业务压在它身上。
最后补一句:网关解决的是"统一入口",它不解决"这家平台到底给不给你用"。如果你更关心的是怎么在具体某个客户端上白嫖到能跑图、能跑视频的额度,那是另一条路子——我在 国内不限期免费使用 Codex 方案 那篇里写过一套完整做法。两者不冲突:网关负责把供应商收拢,客户端配置负责把额度用起来。