当前位置: 首页 > news >正文

杂记 | 搭建反向代理防止OpenAI API被封禁(对于此次收到邮件提示7月9日后将被屏蔽的解决参考)

文章目录

  • 重要声明(免责)
  • 01 OpenAI封禁API的情况
  • 02 解决方案及原理
    • 2.1 原因分析
    • 2.2 解决方案
    • 2.3 步骤概述
  • 03 操作步骤
    • 3.1 购买一个海外服务器
    • 3.2 申请一个域名
    • 3.3 将域名指向代理服务器
    • 3.4 在代理服务器上安装nginx
    • 3.5 配置反向代理


重要声明(免责)

笔者本人一直以来使用本文中的代理方式,目前尚未收到封禁提示邮件,但不保证100%有效
本教程中使用的方案仅供参考,如果采用本方案后仍被封禁,本人对封禁结果及其一切损失不负责

(嫌啰嗦可以直接跳到03部分)

01 OpenAI封禁API的情况

今天(2024.06.25)一早,很多人收到OpenAI的邮件,提示将阻止来自不再支持的国家和地区名单上的地区的API流量。
在这里插入图片描述

我们的数据显示您的组织有来自OpenAI所不支持地区的流量。您可以点击查看当前受支持的国家和地区。我们将从7月9日起,采取额外的措施来阻止这些流量。要继续使用OpenAI的服务,您需要在受支持的地区访问。

02 解决方案及原理

2.1 原因分析

根据邮件内容,造成这种情况的原因可能是:

  1. 在调用OpenAI的API时,使用了国内的本地网络
  2. 使用了中国香港的代理节点(或是别的不受支持的地区的代理节点)
  3. 虽然使用了代理,但不是全局代理,造成代理没能隐藏真实的IP地址
  4. 代理的网络节点频繁变动,或者代理的节点本身是被OpenAI阻止的机房

2.2 解决方案

解决方案概述为:采用可靠的节点+反向代理的方式避免上述问题,从而避免被封禁。

传统模式下,我们可能习惯的是在本地使用正向代理(梯),请求的目标地址仍然是官方的https://api.openai.com,这种方式很容易触发上面提到的几个原因。

而使用反向代理的方案,可以保证每次请求都是从特定的代理节点发出的,即使本地网络是国内或者不断变动,都不影响OpenAI观测到的请求是来自可信节点。

2.3 步骤概述

  1. 购买一个海外的代理服务器
  2. 申请一个域名
  3. 将域名指向代理服务器
  4. 在代理服务器上安装nginx(以nginx proxy manager面板为例)
  5. 配置反向代理

03 操作步骤

3.1 购买一个海外服务器

首先不推荐购买阿里云或腾讯云的服务器,因为国内的服务提供商被封的可能性大,而且可能还有备案的要求,很麻烦。
买的时候建议选择美国节点,不要选香港节点。
笔者本人一共尝试过4家服务器提供商:

  1. bandwagonhost(搬瓦工)
    不推荐,因为我买来就发现被OpenAI屏蔽了,可能是因为这个提供商太多中国用户,被检测到了。好在可以退款。

  2. racknerd(便宜但线路一般)
    具体参考这位博主的文章(无法打开的话需要梯)
    优点是非常便宜,一年10刀就能拿下,缺点是网络线路是普通的BGP,可能影响代理的效果(但实际用下来感觉还好)。
    购买时建议选择洛杉矶的机房。

  3. hostdare(线路好但配置低)
    网址:https://bill.hostdare.com/store/premium-china-optimized-nvme-kvm
    优惠码可以自己搜索下看有没有。
    优点是支持CN2 GIA线路,质量好,缺点是带宽较小,流量偏少,价格偏高。
    购买时建议认准以下红框部分:
    在这里插入图片描述

  4. ZgoCloud(笔者正在用)
    网址:https://clients.zgovps.com/?affid=615
    优点是有CN2 GIA线路,质量较好且性价比高,没那么贵。缺点是不支持退货,有一定风险。
    购买时一定要选购针对中国线路做了优化的(可惜发文时好像暂时没有这种机了)
    这家提供商是我正在使用的,目前用下来没啥问题。

我用的ZgoCloud(暂时没货),个人轻度使用的话可以选择racknerd,不差钱选hostdare。

假设购买的代理服务器的公网ip为58.58.58.58,后文基于该示例IP讲解。

3.2 申请一个域名

我在阿里云购买的,也可以在腾讯云购买,这个无大所谓,便宜的.top域名一年只要10元左右。
(操作过程略)
假设购买的域名为example.com,后文基于该示例域名讲解。

3.3 将域名指向代理服务器

在购买域名的提供商管理控制台做DNS解析,将域名(最好是二级域名)指向购买的代理服务器。
(操作过程略)
例如:将api.example.com指向58.58.58.58,设置时选择A记录。

3.4 在代理服务器上安装nginx

使用SSH工具登录到代理服务器,安装好docker和docker compose。
推荐使用这个nginx面板项目进行配置:
https://github.com/NginxProxyManager/nginx-proxy-manager
docker-compose.yml:

version: '3.8'
services:app:image: 'docker.io/jc21/nginx-proxy-manager:latest'restart: unless-stoppedports:- '80:80'- '81:81'- '443:443'volumes:- ./data:/data- ./letsencrypt:/etc/letsencrypt

安装完成后登录:http://58.58.58.58:81
在这里插入图片描述

初始账号:admin@example.com
初始密码:changeme

3.5 配置反向代理

参考我的配置,Domain Name那里填写刚才指向的域名:
在这里插入图片描述

然后申请一个免费证书(有几个月的有效期,快过期时记得登录面板点击renew):
在这里插入图片描述
接着是高级配置:
在这里插入图片描述

location / {proxy_pass https://api.openai.com/;proxy_ssl_server_name on;proxy_set_header Host api.openai.com;proxy_set_header Connection '';proxy_http_version 1.1;proxy_buffering off;proxy_cache off;
}

完成后浏览器访问配置好的这个代理域名(不挂梯直接访问),如果出现这样的界面,说明成功了:
在这里插入图片描述
然后,在所有需要调用OpenAI API的地方,将官方的api.openai.com替换成自己的api.example.com就可以了。

代理其他服务提供商同理。

再次声明:本方案仅供参考,不保证一定不会被封,如果仍然被封,作者概不负责。

http://www.lryc.cn/news/383310.html

相关文章:

  • 利用ref实现防抖
  • SAP ABAP 之OOALV
  • 构建实用的Flutter文件列表:从简到繁的完美演进
  • spring使用@PostConstruct踩得坑
  • 【Mac】XnViewMP for Mac(图片浏览查看器)及同类型软件介绍
  • win10修改远程桌面端口,Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南
  • 口感探险之旅:勇闯红酒世界,揭秘复杂风味的无尽奥秘
  • 吉时利 Keithley2440 数字源表
  • PPT的精细化优化与提升策略
  • awtk踩坑记录三:移植awtk-mvvm到Awtk Designer项目
  • 07 - matlab m_map地学绘图工具基础函数 - 绘制等高线
  • Kotlin设计模式:享元模式(Flyweight Pattern)
  • java压缩pdf
  • [AIGC] ClickHouse:一款高性能列式数据库管理系统
  • 深度学习21-30
  • google浏览器无法访问大端口的处理方式
  • 微信小程序余额退费
  • 宁波银行票据案例解读,要注入科技赋能票据新形式
  • 博客已迁移
  • 大模型应用研发基础环境配置(Miniconda、Python、Jupyter Lab、Ollama等)
  • 24年嘉兴市索贝进出口有限公司--信息安全实施项目
  • 亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)
  • 【山东】2024年夏季高考文化成绩一分一段表
  • 栈与队列 Leetcode 347 前k个高频元素
  • windchill 相关配置
  • XGBoost算法深度解析:原理、实现与应用
  • 27-29、redis优化(令牌主动失效机制)-controllert额外添加参数接收请求头、拦截器
  • 【Linux】性能分析器 gperftools 详解
  • C语言基础——函数(2)
  • Kafka Stream 流处理设计概述