本地 hosts 劫持 api.openai.com 域名转发到另一个位置可行吗?

4 月 9 日
 a33291
RT,一些 IDE 并不提供 apibase 的修改设置,但是默认支持 openai 官方的 key
此时,如果我修改本机 hosts 将 api.openai.com 直接指向(或者中间有一个什么中转也可以) 其他的 openai 兼容地址上,比如 deepseek 的接口地址,从而实现使用国内模型的目的

有可能做到吗,是否会存在证书之类的问题?

可能无法透明转发流量的话,中间有一层中转逻辑也可以,比如 IDE->openai 域名->本地域名拦截请求->deepseek->返回响应到 IDE

是否有现成的工具或者方案? v2 上的信息比较少,而 ai 本身建议使用 mitmproxy 配合自定义脚本实现
2058 次点击
所在节点    问与答
14 条回复
potatowish
4 月 9 日
本地启一个 caddy 服务,把 openai 的 base api 转发到指定地址,我在 trae 配置本地模型搞过
Meteora626
4 月 9 日
这种软件很多啊,git 上嗖嗖 当时 trae 不能自定义模型,好多人这么搞
neteroster
4 月 9 日
mitmproxy 一下就行
dianso
4 月 9 日
为什么不行

我去年就搞过劫持 kiro warp windsurf 做网关,不用切好,ide 随意用。
neteroster
4 月 9 日
如果你用 mac+surge 或许也可以直接用一下他的 mitm ,不用多装东西:

https://manual.nssurge.com/http-processing/url-rewrite.html
a33291
4 月 9 日
@neteroster #5 我现在是 win11,本地有 clash,但是不想开 tun 模式,日常都是用 proxy 模式

https://gist.github.com/tshu-w/39bb65476ca855a1bebe5a81c582a087 找到一个 surge + mitm 的,不过我这边用不了 surge
a33291
4 月 9 日
@potatowish 我试试看,之前尝试过正向代理(nginx 修改 host 模式),也许可行. 让域名指向 nginx 代理地址这样
a33291
4 月 9 日
@Meteora626 我可能搜索关键字不对,比如用的 openai api proxy 之类,没找到合适的,最后倒是找到了前段时间报毒那个 litellm
r6cb
4 月 9 日
未必可以吧,ide 也许是把 key 放在他们服务器上请求 openai 得到结果再返回给客户端呢?
a33291
4 月 10 日
@r6cb trae 估计是这么干的,因为我在添加模型和发起聊天时都没抓到直接向目标域名发起的请求. 他添加模型啥的都使用私有协议(非 http)在服务端做校验,所以这种做法就无效了
Meteora626
4 月 10 日
jifengg
4 月 10 日
好像没看到你怎么处理证书问题的,注意到你后面 curl 也是加了-k 参数,请问实际在你的 ide 中可以用吗?
a33291
4 月 10 日
@jifengg 又研究了一下之后最终搞定了,见附言 2
证书问题由 mitmproxy 解决,他会生成 ca,导入到系统即可
jifengg
4 月 13 日
@a33291 好吧,我以为还有什么绕过添加自定义 ca 的办法呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1204691

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX