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

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

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

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

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

    是否有现成的工具或者方案? v2 上的信息比较少,而 ai 本身建议使用 mitmproxy 配合自定义脚本实现
    第 1 条附言  ·  11 小时 1 分钟前
    初步测试成功,步骤
    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
    10 条回复    2026-04-10 08:20:35 +08:00
    potatowish
        1
    potatowish  
       14 小时 59 分钟前 via iPhone   ❤️ 1
    本地启一个 caddy 服务,把 openai 的 base api 转发到指定地址,我在 trae 配置本地模型搞过
    Meteora626
        2
    Meteora626  
       14 小时 22 分钟前   ❤️ 1
    这种软件很多啊,git 上嗖嗖 当时 trae 不能自定义模型,好多人这么搞
    neteroster
        3
    neteroster  
       14 小时 20 分钟前   ❤️ 1
    mitmproxy 一下就行
    dianso
        4
    dianso  
       14 小时 19 分钟前   ❤️ 1
    为什么不行

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

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

    https://gist.github.com/tshu-w/39bb65476ca855a1bebe5a81c582a087 找到一个 surge + mitm 的,不过我这边用不了 surge
    a33291
        7
    a33291  
    OP
       12 小时 32 分钟前
    @potatowish 我试试看,之前尝试过正向代理(nginx 修改 host 模式),也许可行. 让域名指向 nginx 代理地址这样
    a33291
        8
    a33291  
    OP
       12 小时 31 分钟前
    @Meteora626 我可能搜索关键字不对,比如用的 openai api proxy 之类,没找到合适的,最后倒是找到了前段时间报毒那个 litellm
    r6cb
        9
    r6cb  
       10 小时 27 分钟前
    未必可以吧,ide 也许是把 key 放在他们服务器上请求 openai 得到结果再返回给客户端呢?
    a33291
        10
    a33291  
    OP
       1 小时 38 分钟前
    @r6cb trae 估计是这么干的,因为我在添加模型和发起聊天时都没抓到直接向目标域名发起的请求. 他添加模型啥的都使用私有协议(非 http)在服务端做校验,所以这种做法就无效了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:58 · PVG 09:58 · LAX 18:58 · JFK 21:58
    ♥ Do have faith in what you're doing.