V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a33291
V2EX  ›  问与答

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

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

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

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

    是否有现成的工具或者方案? v2 上的信息比较少,而 ai 本身建议使用 mitmproxy 配合自定义脚本实现
    第 1 条附言  ·  2 天前
    初步测试成功,步骤
    1. mitmdump --map-remote '|//api.openai.com/|//api.longcat.chat/openai/' -k --listen-host 127.0.0.1 --listen-port 443
    2. 修改 hosts 127.0.0.1 api.openai.com
    3. 测试
    curl -v -k https://api.openai.com/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer ak_xxx" -d '{
    "model":"LongCat-Flash-Chat",
    "messages":[
    {"role":"system","content":"You are a helpful assistant."},
    {"role":"user","content":"你是什么模型"}
    ],
    "temperature":0.2
    }'
    响应
    {"id":"5f21ee882bf6407893a3bc31d40064ff","object":"chat.completion","created":1775745942,"model":"longcat-flash-chatai-api","usage":{"completion_tokens":30,"prompt_tokens":22,"total_tokens":52,"cache_write_tokens":0,"cache_read_tokens":0,"input_tokens":0,"output_tokens":0,"cached_tokens":0},"choices":[{"index":0,"message":{"role":"assistant","content":"我是美团研发的大模型 LongCat ,也是一位 AI 助手。如果您有任何问题或需要帮助,请随时告诉我,我将竭诚为您服务。"},"finish_reason":"stop","matched_stop":2,"logprobs":null}]}

    发现 vscode 的 kilo 插件可以直接以 key 方式添加 openai 了,只是模型不被 longcat 这边识别报 404
    然后 trae 这边添加会失败,报错 997
    第 2 条附言  ·  2 天前
    补充找到的资料和工具

    https://github.com/BiFangKNT/mtga 这个更完善,和第一条附言的做法类似,只是有 ui
    https://github.com/Noyze-AI/TRAE-Ollama-Bridge 这个相比之下多利用了 netsh 配置端口流量转发,但是经过测试实际上不需要,也能完成目标

    https://tyuans.com/trae%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9E%8B%E4%BD%BF%E7%94%A8%E8%8B%B1%E4%BC%9F%E8%BE%BE%E5%B9%B3%E5%8F%B0%E6%A8%A1%E5%9E%8B/

    最终结果
    可行(国内版和国内版都是可以的,操作方式如附言 1 即可,mtga 太重了感觉没必要,并且这个天然支持 linux)

    之前报 997 的原因是,trae 是 ssh 远程在其他电脑,此时添加模型的时候他应该走的是 vscode-server 发出真正的 openai 请求,导致我本地 hosts 修改实际上无效,一旦切换到本地再添加 openai 就 ok 了
    13 条回复    2026-04-10 17:57:28 +08:00
    potatowish
        1
    potatowish  
       3 天前 via iPhone   ❤️ 1
    本地启一个 caddy 服务,把 openai 的 base api 转发到指定地址,我在 trae 配置本地模型搞过
    Meteora626
        2
    Meteora626  
       3 天前   ❤️ 1
    这种软件很多啊,git 上嗖嗖 当时 trae 不能自定义模型,好多人这么搞
    neteroster
        3
    neteroster  
       3 天前   ❤️ 1
    mitmproxy 一下就行
    dianso
        4
    dianso  
       3 天前   ❤️ 1
    为什么不行

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

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

    https://gist.github.com/tshu-w/39bb65476ca855a1bebe5a81c582a087 找到一个 surge + mitm 的,不过我这边用不了 surge
    a33291
        7
    a33291  
    OP
       2 天前
    @potatowish 我试试看,之前尝试过正向代理(nginx 修改 host 模式),也许可行. 让域名指向 nginx 代理地址这样
    a33291
        8
    a33291  
    OP
       2 天前
    @Meteora626 我可能搜索关键字不对,比如用的 openai api proxy 之类,没找到合适的,最后倒是找到了前段时间报毒那个 litellm
    r6cb
        9
    r6cb  
       2 天前
    未必可以吧,ide 也许是把 key 放在他们服务器上请求 openai 得到结果再返回给客户端呢?
    a33291
        10
    a33291  
    OP
       2 天前
    @r6cb trae 估计是这么干的,因为我在添加模型和发起聊天时都没抓到直接向目标域名发起的请求. 他添加模型啥的都使用私有协议(非 http)在服务端做校验,所以这种做法就无效了
    Meteora626
        11
    Meteora626  
       2 天前   ❤️ 1
    jifengg
        12
    jifengg  
       2 天前
    好像没看到你怎么处理证书问题的,注意到你后面 curl 也是加了-k 参数,请问实际在你的 ide 中可以用吗?
    a33291
        13
    a33291  
    OP
       2 天前
    @jifengg 又研究了一下之后最终搞定了,见附言 2
    证书问题由 mitmproxy 解决,他会生成 ca,导入到系统即可
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 12:18 · PVG 20:18 · LAX 05:18 · JFK 08:18
    ♥ Do have faith in what you're doing.