ChatGPT中转节点的搭建教程

蜗牛vps教程2023-07-07350

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

Prerequisites

部署本项目,你需要:

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

原理

ChatGPT中转节点的搭建教程  第1张

 

ChatGPT中转节点的搭建教程  第2张

 

ChatGPT中转节点的搭建教程  第3张

 

ChatGPT中转节点的搭建教程  第4张

 

 

1. DNS解析

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

ChatGPT中转节点的搭建教程  第5张


DNS解析设置如下:

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

ChatGPT中转节点的搭建教程  第6张

 

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

ChatGPT中转节点的搭建教程  第7张

 

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

ChatGPT中转节点的搭建教程  第8张

 

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

ChatGPT中转节点的搭建教程  第9张

 

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

ChatGPT中转节点的搭建教程  第10张


这样,访问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中转节点的搭建教程  第11张

 

 

 

3.服务器端项目部署

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

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

ChatGPT中转节点的搭建教程  第12张


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

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

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

ChatGPT中转节点的搭建教程  第13张

 

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

ChatGPT中转节点的搭建教程  第14张

 

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

ChatGPT中转节点的搭建教程  第15张

 

ChatGPT中转节点的搭建教程  第16张

 

 

4.效果展示

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

ChatGPT中转节点的搭建教程  第17张

 

ChatGPT中转节点的搭建教程  第18张


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

 

 

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo6@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram