ChatGPT中转节点的搭建教程

ChatGPT正在改变我们的生活,而国内访问ChatGPT却比较困难。通过本项目,你可以搭建一个可正常访问的ChatGPT节点,以供自己和身边的人使用。

Prerequisites

部署本项目,你需要:

  • 已经拥有openai账号,并申请了API key
  • 注册一个cloudflare账号
  • 一点编程知识
  • 一点服务器租赁费用

原理

ChatGPT中转节点的搭建教程

 

ChatGPT中转节点的搭建教程

 

ChatGPT中转节点的搭建教程

 

ChatGPT中转节点的搭建教程

 

 

1. DNS解析

我在项目复现时,使用了两个域名:xxx.cc(公用访问)和xxxxx.bio(用于cloudflare承接),以及一台IPv6服务器。

ChatGPT中转节点的搭建教程


DNS解析设置如下:

  1. 在http://name.com购买域名xxxxx.bio,设置ns解析到cloudflare域名服务器,也就是交给了cloudflare负责dns解析。cloudflare域名服务器可以在cloudflare的控制面板看到。

ChatGPT中转节点的搭建教程

 

  1. 之后将direct1.xxxxx.bio AAAA解析到服务器IPv6。设置”Proxied“是cloudflare提供的特有服务,可以保证nslookup查询时得到的IP并非服务器真正的IP地址,而是cloudflare某个节点的IP;当访问该IP时,cloudflare节点会把异常流量(如ssh)拦截,并把正常的HTTP流量转发给真正的服务器。

ChatGPT中转节点的搭建教程

 

  1. 在cloudflare购买域名 xxx.cc,设置 chat.xxx.cc 的ns记录为ns*.he.net。he.net是一个免费的域名解析服务提供商。

ChatGPT中转节点的搭建教程

 

  1. 注册http://he.net的帐户,将http://chat.xxx.cc解析到cloudflare最近的节点IP。这个IP可以通过traceroute来找到。

ChatGPT中转节点的搭建教程

 

  1. 通过custom hostname绑定direct1.xxxxx.bio

ChatGPT中转节点的搭建教程


这样,访问http://chat.xxx.cc时,DNS会解析到162.159.0.1,当发送带Host: http://chat.xxx.cc的HTTP request时节点就会将请求解析到direct1.xxxxx.bio,通过AAAA解析到服务器IPv6,从而可以被访问。而且私有的*.xxxxx.bio和服务器地址都不被外部知晓。

 

2.IP筛选,WAF规则

打开在Cloudflare的xxx.cc域名下的Security-WAF页面,设置WAF规则,如果请求的主机名为chat.xxx.cc,且不是cloudflare(AS号13335)或北大的IP,则阻挡访问。

ChatGPT中转节点的搭建教程

 

 

 

3.服务器端项目部署

为了尽可能减小成本,可以使用只有IPv6地址的服务器。Vultr就可以提供这样的服务器。
同时,购买服务器时要考虑地理位置,使其访问openai的接口尽可能快速。

购买服务器并成功使用ssh登录之后,此时ping http://openai.com将看到错误信息“网络不可达”:

ChatGPT中转节点的搭建教程


这是因为服务器没有IPv4地址,无法访问v4的网络。我们可以通过Warp工具来实现访问。

WARP是CloudFlare提供的一项基于WireGuard的网络流量安全及加速服务,能够让你通过连接到CloudFlare的边缘节点实现隐私保护及链路优化。

其连接入口为双栈(IPv4/IPv6均可),且连接后能够获取到由CF提供基于NAT的IPv4和IPv6地址,因此我们的单栈服务器可以尝试连接到WARP来获取额外的网络连通性支持。这样我们就可以让仅具有IPv6的服务器访问IPv4,也能让仅具有IPv4的服务器获得IPv6的访问能力。

ChatGPT中转节点的搭建教程

 

使用github上ChatGPT-streamlit项目,该项目是一个Web应用,可以中转访问Openai的接口,并将结果显示在网页上。运行后程序会绑定localhost的8502端口。
如果anaconda安装过程中出现安装包“python-graphviz”不存在,可以修改environment.yml中对应行为graphviz

ChatGPT中转节点的搭建教程

 

利用反向代理nginx做反向代理和登录验证,配置如图所示。
proxy_pass:在访问80端口时,nginx负责转发到本地的8502端口
auth_basic,auth_basic_user_file:开启HTTP质询,即只有输入正确账号密码的用户可以访问。
账号密码管理:使用htpasswd工具。密码文件放在/etc/nginx/.passwd

ChatGPT中转节点的搭建教程

 

ChatGPT中转节点的搭建教程

 

 

4.效果展示

连接校园网访问时,出现HTTP质询;登陆后即可正常使用

ChatGPT中转节点的搭建教程

 

ChatGPT中转节点的搭建教程


当使用校外IP访问时,Cloudflare显示“Sorry, you have been blocked”

 

 

ChatGPT中转节点的搭建教程

本文地址:https://www.idcbest.com/idcnews/11008747.html



天下数据手机站 关于天下数据 联系我们 诚聘英才 付款方式 帮助中心 网站备案 解决方案 域名注册 网站地图

天下数据18年专注海外香港服务器、美国服务器、海外云主机、海外vps主机租用托管以及服务器解决方案-做天下最好的IDC服务商

《中华人民共和国增值电信业务经营许可证》 ISP证:粤ICP备07026347号

朗信天下发展有限公司(控股)深圳市朗玥科技有限公司(运营)联合版权

深圳总部:中国.深圳市南山区深圳国际创新谷6栋B座10层 香港总部:香港上環蘇杭街49-51號建安商業大廈7樓

7×24小时服务热线:4006388808香港服务电话:+852 67031102

本网站的域名注册业务代理北京新网数码信息技术有限公司的产品

工商网监图标