如何使用warp解决openai封堵vps ip访问chatgpt的问题

近期openai升级了整体的防护策略,基本上云厂商的IP全部都拉黑名单,无法访问chatgpt。

目前网上的整体思路基本上都是套cloudflare warp,确实是个可行的方案。但是这里面有一个问题,就是这些文章基本上都是自己二次开发的脚本,或者就是使用wgcf这个项目。不是说信不过他们的脚本,只是cloudflare warp本身就很好用了,而且满屏中文的脚本确实让人吃不消。

本文将介绍一下如何基于原生warp解决chatgpt的访问问题。本文有docker的解决方案,大家可以查看博客的另外一篇文章。

一、warp介绍及环境准备

warp是cloudflare公司推出,基于保护个人隐私的代理解决方案。主要包含流量及DNS的代理。对于我们在海外的服务器而言,在服务器侧再套上一层cf公司的代理,有助于解决我们数据中心的IP被精准识别的问题。
这样有几个好处:
1. 可以解决类似openai这种大批量拉黑的棘手问题。
2. 爬虫程序被拉黑IP的情况大大降低,且即使被拉黑,可以切换warp节点解决。
3. 能够保护我们的出访流量,使得云厂商更难识别我们服务器的用途。

warp对于Ubuntu的版本支持的较好,centos系的话从8开始支持,假如你使用的7版本,实在不想换操作系统的情况下,透过docker host模式也是可以曲线救国的。docker的文章已经在博客发布,有需要可以看另外的文章。

官方文档:
https://developers.cloudflare.com/warp-client/get-started/linux/

安装特别简单,基本上就是按照文档添加yum或者apt源,然后一键安装即可。

eg. ubuntu 22

# curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
# sudo apt update
# sudo apt install cloudflare-warp

安装完成之后,进程基于systemd管理,查看状态:
systemctl status warp-svc.service

二、warp基本命令及配置思路

我们给VPS套warp基本思路是,使用warp在本地开启一个socket端口做代理,默认为40000端口。
接下去无论你原本使用哪种协议进行代理,只需要在原本的代理中配置走一下本地代理即可。
本文不想过多的涉及翻墙相关的说明,本人使用的是Trojan-go,会简单带一下trojan的配置。


安装并正常启动warp后,
进行注册:
warp-cli register
进行模式的切换:
warp-cli set-mode proxy
进行连接:
warp-cli connect

此时本地启动了一个40000的正向代理端口,我们将流量进行配置即可,比如trojan在配置文件中添加正向代理的配置即可(其他的协议大家自己去找下对应的配置):
"forward_proxy": {
	"enabled": true,
	"proxy_addr": "127.0.0.1",
	"proxy_port": 40000,
	"username": "",
	"password": ""
	}

关于warp+,其实免费版本的warp已经可以满足大家的使用需求,但是假如想要升级到warp+,可以找一台安卓手机上安装warp然后确保服务器和安卓端使用相同的license:
查看本地账户:
warp-cli account
切换license:
warp-cli set-license
保存好自己的account license,把账号进行升级即可。

至于如何将账号升级成warp+,大家自行google,各种方式可以实现。不过个人感觉没啥必要,至少现阶段来看。


What is the difference between WARP, WARP+, and WARP+ Unlimited?
1.1.1.1 lets you protect your DNS queries by encrypting them with HTTPS and TLS. We use our 1.1.1.1 public DNS resolver to resolve your queries and prevent ISPs from spying and selling your data. This was our original product offering, and it will always be free.

WARP is 1.1.1.1, but better. We still encrypt your DNS requests, but we leverage our global network of data centers and a more modern protocol to make your internet even faster. WARP will always be free for our users.

With WARP+, we route your internet requests to avoid Internet traffic jams, making it even better. WARP+ runs on a limited data plan — the more people you refer, the more MBs of data  you can use with WARP+.

三、检测及调试

在上述的配置完成之后,可以临时设置代理检查本地的40000端口是否生效:
export ALL_PROXY=socks5://127.0.0.1:40000
curl ifconfig.me
curl myip.ipip.net

但是,目前即使生效了,你在连接chatgpt的时候,仍然可能出现429的错误,这个是由于目前warp连接的IP处于限流导致的,经过我的测试可以透过不断的切换节点来解决:
warp-cli  disconnect && sleep 1  &&warp-cli connect

warp状态查看的命令:
warp-cli status
warp-cli warp-stats

最后祝大家都能用上chatgpt