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

各位大哥, nginx 反向代理 chatgpt,怎么搞啊

  •  
  •   lizhien · 2023-11-23 09:20:23 +08:00 · 7889 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不搞什么 chatgpt 转 api ,单纯想通过反向代理用官方的chatgpt
    Pandora next昨天弄了个,不知道为啥我的没法直接用账号登录,只能拿access token

    第 1 条附言  ·  364 天前

    openai api、azure openai api,pandara next我都有
    我只是想看看能否直接nginx反向代理chat.openai.com,仅此而已
    不是代理api.openai.com也不是openai.com
    为什么不直接用Pandora,说了我有,我问的是能否直接反向代理chat.openai.com,用最佳的体验
    是在不行我肯定就用Pandora去了啊,非要杠我一下
    有个大哥说了webproxy
    感觉只能用neko这种远程浏览器完成了

    Pandora账号登不上,是我机子网络有问题,换了台就行了

    49 条回复    2023-11-24 16:16:49 +08:00
    hytirrb
        1
    hytirrb  
       2023-11-23 09:23:02 +08:00
    你是部署什么项目吗
    lizhien
        2
    lizhien  
    OP
       2023-11-23 09:25:58 +08:00
    @hytirrb 不是,只是单纯想不挂梯子用 chatgpt ,我家里人想用,但是不会翻墙,教翻墙挺麻烦的
    OceanBreeze
        3
    OceanBreeze  
       2023-11-23 09:27:24 +08:00
    hxpmc
        4
    hxpmc  
       2023-11-23 09:29:32 +08:00
    Pandora next 你要 licence.jwt 吧
    NotFoundEgg
        5
    NotFoundEgg  
       2023-11-23 09:36:33 +08:00
    可以用这个 docker pull pengzhile/pandora
    block0
        6
    block0  
       2023-11-23 09:37:01 +08:00 via Android
    @OceanBreeze 这个让我看到了一个商机
    yaytohkay
        7
    yaytohkay  
       2023-11-23 09:38:45 +08:00
    https://github.com/moeakwak/chatgpt-web-share 这个呢,之前看 v 友推荐的,不知道能不能满足你的需求
    lizhien
        8
    lizhien  
    OP
       2023-11-23 09:45:23 +08:00
    @NotFoundEgg 用过了,还是想能否直接用 nginx 反向代理 chatgpt.openai.com
    lizhien
        9
    lizhien  
    OP
       2023-11-23 09:47:38 +08:00
    @OceanBreeze api.openai.com 反代没问题,是反向代理 chatgpt.openai.com 这个,直接用官方的 chatgpt
    OceanBreeze
        10
    OceanBreeze  
       2023-11-23 09:50:16 +08:00
    @lizhien 那要自己慢慢调试了,还要做内容替换。
    renmu
        11
    renmu  
       2023-11-23 09:55:54 +08:00 via Android
    你有技术跨过 cf 的盾吗?没有的话要么选择潘多拉要么走 api
    MyComputer
        12
    MyComputer  
       2023-11-23 09:57:12 +08:00
    @lizhien 我曾经也有个这个想法,最好反代的网站上还能设置一个用户名和密码,这样只有自己能访问,别人访问了也没用
    crazypig14
        13
    crazypig14  
       2023-11-23 09:57:21 +08:00   ❤️ 1
    问 chatgpt 呀
    Vindroid
        14
    Vindroid  
       2023-11-23 10:03:36 +08:00
    +1 ,蹲个答案,不让用代理,能直接反代网站是最好的方案了
    K8dcnPEZ6V8b8Z6
        15
    K8dcnPEZ6V8b8Z6  
       2023-11-23 10:13:11 +08:00
    开一个 windows server 的廉价轻量,做全局代理开好浏览器,然后让家人用 RDP 登(

    其实我也想蹲个反代方案
    version
        16
    version  
       2023-11-23 10:17:07 +08:00
    反向代理是不可能的.不拦截就奇怪了.....只能远程桌面访问..里面开个浏览器
    https://github.com/SeleniumHQ/docker-selenium
    不知道有人玩过没..暂时还没这个需求
    listenerri
        17
    listenerri  
       2023-11-23 10:39:45 +08:00
    可以试试 web proxy 技术,参考: https://www.croxyproxy.com/
    neoCoder
        18
    neoCoder  
       2023-11-23 10:44:27 +08:00
    Pandora next 搭建文档里不是写怎么弄吗,我昨天刚按照文档搭建完,没问题的
    mightybruce
        19
    mightybruce  
       2023-11-23 10:45:57 +08:00
    反代或者通过代理方式访问网站时不靠谱的, 只要网站发生一些变化比如 csrf-token ,原来规则就失效了, 你难道不会通过 api 建一个类似 chatgpt 的网站吗?
    jadeborner
        20
    jadeborner  
       2023-11-23 10:46:57 +08:00
    需要这个功能
    n0bin0bita
        21
    n0bin0bita  
       2023-11-23 11:00:24 +08:00
    @K8dcnPEZ6V8b8Z6 我的方案类似,我用的是 remoteapp ,通过 RDP 直接访问谷歌浏览器,远程的电脑直接全局代理。这样不会多一个远程窗口,也挺方便
    lcy630409
        22
    lcy630409  
       2023-11-23 11:00:39 +08:00
    你可以参考我的方案
    安装 Adspower(类似的都可以),找一个可以上 openai 站点的服务器,做一个 socks 代理
    在 Adspower 上新建一个浏览器,代理设置上面的那个

    然后翻墙软件中 设置这个服务器的 ip 走代理(我软路由是 ikuai 所以这一步很方便)
    Plutooo
        23
    Plutooo  
       2023-11-23 11:02:41 +08:00
    既然是家人想用,又知道 Pandoranext ,为什么不直接用 Pandoranext 的演示站呢
    bli22ard
        24
    bli22ard  
       2023-11-23 11:19:35 +08:00
    反向代理不一定行
    比如:你反向代理了 https://chat.openai.com/ ,你是可以拿到一个返回的文件,但是这个文件可能包含跨域的 js 文件、css 文件、图片等等,这些资源文件,需要访问别的域名,这时候,流量就不会经过你的反向代理。
    lizhien
        25
    lizhien  
    OP
       2023-11-23 11:26:33 +08:00
    @listenerri 这个确实可以,牛逼
    lizhien
        26
    lizhien  
    OP
       2023-11-23 11:40:04 +08:00
    @bli22ard 嗯嗯,我看到有个 Content-Security-Policy ,看来只能用 Pandora 了,或者 neko 远程浏览器
    mmdsun
        27
    mmdsun  
       2023-11-23 12:56:25 +08:00 via iPhone
    参考镜像网站的配置,以前谷歌刚刚被墙的时候好多镜像免翻的站点配置
    sdrzlyz
        28
    sdrzlyz  
       2023-11-23 13:21:36 +08:00
    找台能跑的主机,m1k1o/neko 一下,链接分享给别人
    dddd1919
        29
    dddd1919  
       2023-11-23 13:25:15 +08:00
    问 chatgpt
    Freakr
        30
    Freakr  
       2023-11-23 13:29:33 +08:00
    感觉可以不代理 http ,直接代理 TCP ,访问的机器改下 hosts
    ynkcc
        31
    ynkcc  
       2023-11-23 13:33:05 +08:00 via Android
    @OceanBreeze 有人试过吗,感觉还比较可行
    herozzm
        32
    herozzm  
       2023-11-23 13:33:50 +08:00
    反代估计问题很多
    leoSup
        33
    leoSup  
       2023-11-23 13:34:56 +08:00
    国外找个机器,上面部署一个根据 API 调用的 chatGPT 项目不就好嘛?还是要用官网免费的?
    idlewater
        34
    idlewater  
       2023-11-23 14:04:22 +08:00
    刚试了,这个管用: https://pjq.me/?p=2054
    SenLief
        35
    SenLief  
       2023-11-23 14:14:08 +08:00
    +1 我也想知道这个怎么处理的。
    c2const
        36
    c2const  
       2023-11-23 14:48:26 +08:00
    不熟悉前端技术,在大陆时是用的电脑/手机都远程桌面到服务器,间接使用 chatgpt 官网 :)
    yeohreet
        37
    yeohreet  
       2023-11-23 15:02:59 +08:00
    蹲一个进行学习
    fengpan567
        38
    fengpan567  
       2023-11-23 15:16:25 +08:00
    搞不了搞不了,直接用 nginx 反代会被 cf 拦截
    jiayouzl
        39
    jiayouzl  
       2023-11-23 15:22:20 +08:00
    我公司是直接用我家软路由做的收发,防火墙开端口,直接绑域名,带个端口号就行.我家路由器直接科学的,所以不需要考虑你说的问题.可以试试我自己用的这个方法.
    dyllen
        40
    dyllen  
       2023-11-23 15:34:46 +08:00
    @block0 小心请去喝茶。
    webfamer
        41
    webfamer  
       2023-11-23 16:32:13 +08:00
    我代理 gpt 的 api,腾讯云直接给干封了
    makerbi
        42
    makerbi  
       2023-11-23 16:43:10 +08:00
    直接用 Cloudflare 的 AI Gateway 吧,目前是没啥问题。
    mmdsun
        43
    mmdsun  
       2023-11-23 18:06:14 +08:00
    梯子被 ban 了,暂时没法是 chatgpt 网站, 试了下官网是可以代理的。


    server {
    listen 8080;
    server_name localhost;


    location / {


    if ($request_method = 'OPTIONS') {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' '*';
    add_header 'Access-Control-Allow-Headers' '*';
    add_header 'Content-Type' 'text/plain charset=UTF-8';
    add_header 'Content-Length' 0;
    add_header 'Access-Control-Max-Age' 1728000;
    return 204;
    }

    # 代理到目标地址
    proxy_pass https://openai.com;


    # 代理设置,将 Host 设置为被代理服务器的域名
    proxy_set_header Host openai.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # 隐藏后端服务器的 Access-Control-Allow-Origin 头
    proxy_hide_header Access-Control-Allow-Origin;

    # 添加自己的 Access-Control-Allow-Origin 头
    add_header 'Access-Control-Allow-Origin' '*' always;
    add_header 'Access-Control-Allow-Methods' '*' always;
    add_header 'Access-Control-Allow-Headers' '*' always;

    #可能还需要替换响应内容 例如<a> href 之类的 nginx proxy_pass + sub_filter

    }


    }
    brownant
        44
    brownant  
       364 天前
    教程网上挺多的,Google 到处都是

    可以帮你归纳一下
    准备工作
    1. 准备一个 top 域名,不需要备案
    2. 准备一台境外服务器(新加坡、美国都行,阿里都可以买)
    3. 去 Cloudflare CDN 服务商注册一个账号
    4. 了解第三方 chatgpt 聊天网站工程 chatgpt-web( https://github.com/Chanzhaoyu/chatgpt-web)。方便自己起一个网站服务,还方便控制访问者权限。

    搭建步骤
    1. 在境外服务器部署 chatgpt-web 项目,可能需要你配置 chatgpt api key 。
    2. 在 Cloudflare CDN 增加 top 域名的解析,解析到你的境外服务器。
    3. 然后就可以直接国内访问了,有 Cloudflare CDN ,一般都是稳定不会被 Q 。
    yinmin
        45
    yinmin  
       364 天前
    chat.openai.com 的页面里加载了以下这么多网站的内容:
    cdn.oaistatic.com
    widget.intercom.io
    js.intercomcdn.com
    tr9i.chat.openai.com
    featuregates.org
    api-iam.intercom.io
    file.oaiusercontent.com
    events.statsigapi.net

    由于 chat.openai.com 的 web 网站加载了很多反攻击的第三方服务,不可能使用 nginx 反代的。
    djvv
        46
    djvv  
       364 天前
    @NotFoundEgg docker pull pengzhile/pandora 早用不了
    tywtyw2002
        47
    tywtyw2002  
       364 天前 via iPhone
    反代过不了 cf 的浏览器验证,除非你有脚本,目前开源的脚本都没发过验证了,除非收费的。


    唯一可行是改 host ip ,做正向代理。
    NotFoundEgg
        48
    NotFoundEgg  
       364 天前
    @djvv 可以用啊,5 分钟亲测,刚 pull 并 run 的
    ```
    docker run -d \
    -v ~/docker/pandora/data:/data \
    -p 8899:8899 \
    -e PANDORA_CLOUD=cloud \
    -e PANDORA_SERVER=0.0.0.0:8899 \
    --name pandora \
    pengzhile/pandora:latest
    ```
    chris555
        49
    chris555  
       364 天前
    neko 是个好东西 学习到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.