如何让被ban的vps访问ChatGPT?

153

最近ChatGPT异常的火爆,我在去年的时候就在openai那边注册了chatgpt,那时候我注册账号需要国外的手机验证,在sms.active上买的,当时才10卢

布,现在回去一看竟然是50卢布,吓死了。这事件给我的感觉就是,如果出现新鲜事物,甭管其他的,在自己力所能及的范围内果断上车才是王道。

因为全球范围内有很多人在用chatgpt,所以有时候官方会贴出公告,说他们的服务已经饱和了,叫你等一下再来光顾。没办法,大家都想让chatgpt给

自己做事情。比较效果还是不错的,白嫖的好用的东西大家也就没那么讲究了。 好了说会正题。

VPS ip被chatgpt拉黑

我自己手上是有几台cloudcone家的vps的,主要的作用就是拿来科学上网查资料用的,但是在最近的几个星期,我惊讶的发现我的cloudcone的vps,没办法访问openai chatgpt的官网了。这不能吧,我之前是可以的,在网上找了一圈,发现我这个不是个例。

Xnip2023-02-11_04-39-14.jpgXnip2023-02-11_04-41-18.jpg

可以看到,很多有vps科学上网的人都被chatgpt拉黑了账号,我猜我的cloudcone也可能是邻居访问chatgpt太狠了,导致chatgpt直接封vps提供商的

ip端,因为我的几台机器ip是连着的,好家伙真的是一锅端啊。那有什么方法可以拯救一下吗?想了一下,方法可能有几种。

  • 直接换个IP或者换个没有被屏蔽的vps,一个一个试? 这太不确定了,耗费钱还有时间,不是好方法。

  • 加入有一台vps没有被ban,那么就把ban了的机器的请求代理到没有ban的机器上不就可以,但是这样你这台vps不就是半残的状态吗?

  • 参考爬虫被服务器ban了,可以使用代理,那么如法炮制,是不是也可以使用代理ip,比如网站上爬取的ip代理池,或者付费的代理池。又比如说家宽代理(国外的),这样的方式是需要费用的,而且IP池不便宜。

  • 找寻chatgpt的替代品,但是就目前而言,市面上的gpt产品在chatgpt面前,真的是一个能打的都没有。前几天看一个新闻,谷歌也发布了一个chatgpt的竞品,但是因为演示视频犯了一个低级的常识错误导致一夜之前市值蒸发千亿。可怕....

那么有没有什么好方法,既不用花钱,而且能让vps访问chatgpt,而且还让vps是满血的状态呢? 有,那就是tor网络,对!就是那个暗网tor,全球有

很多匿名的tor节点,这些节点组成了tor网络,数据进入tor网络,会从其他的ip出来,这样,只要我们让访问chatgpt的数据流量流入tor网络,那么就

相当于我们有了免费的代理池,虽然可以用这种方法让vps访问chatgpt,但是tor网络的速度确实有点慢的,所以我们最好不要用tor网络来看视频流媒

体之类的内容,因为真的很慢的,但是用来传输文本是没什么问题。那么问题来了,怎么让流量分离出来呢,就是访问openai的流量走tor网络,其他

的流量正常走vps的代理,方法也是有的,就是依靠代理软件本身。我们现在大部分的可学上网软件,服务端基本都是xray v2ray之类的,这类软件天

生就有分流的功能。通过配置,我们是可以实现这样的流量分离的,好的废话不错说,我们开整。

前提条件

这里假设你知道怎么假设代理,并且会简单的搭建代理和基本的linux服务器操作的知识。因为涉及到在服务器上修改文件所以希望你提前是知道这些知识的。

安装tor服务

我这里用的是`Debian11`的操作系统,只需要执行:

apt update && apt upgrade -y
apt install tor -y

等待安装程序运行完成,如果完成了,你可以使用:

ps -ef|grep tor

来查看tor服务是否正常启动。

Xnip2023-02-11_05-07-52.jpg接下来我们来修改tor的配置文件:

vim /etc/tor/torrc

# 填入以下的配置
# 自定义端口 每次链接都会随机使用一个端口,对于tor来说就相当于
# 一个ip
SocksPort 38801
SocksPort 38802
SocksPort 38803
SocksPort 38804
SocksPort 38805
SocksPort 38806
SocksPort 38807
SocksPort 38808
SocksPort 38809
SocksPort 38810


## Entry policies to allow/deny SOCKS requests based on IP address.
## First entry that matches wins. If no SocksPolicy is set, we accept
## all (and only) requests that reach a SocksPort. Untrusted users who
## can access your SocksPort may be able to learn about the connections
## you make.

# 只有本机访问访问(安全)
SocksPolicy accept 127.0.0.1
# 拒绝其他ip的流量
SocksPolicy reject *
# 对于每个端口来说,每30秒重新创建一个新链路,也就是换一个新IP
NewCircuitPeriod 30
# #对于新建每个链路的过程来说,建立程序超过10秒则直接放弃,保障了连接到线路的质量
CircuitBuildTimeout 10
# 出口节点尽量选择美国
ExitNodes {us}
# 出口节点尽量不要再中国
ExcludeExitNodes {cn}

配置好tor的设置之后,我们需要重启tor,运行:

service tor restart
# 没有报错提示,就说明成功重启了tor

准备好tor之后,我们就要进行xray的配置了,v2ray也是一样的。

Xray / V2ray配置

最开始我的节点是使用x-ui面板搭建的,省事方便,如果你也想搭建的话,可以使用这个命令一键搭建x-ui面板.

bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)

我这里默认你会使用x-ui来搭建面板并且配置节点了。好了比较关键的步骤来了,我们需要修改x-ui中xray配置中config的默认配置,来实现我们想要的

功能。

Xnip2023-02-11_05-21-26.jpg将上述箭头中的json格式的内容复制出来,然后找一个文本保存下来。然后把它修改一下。这段json长这样:

{
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

把它修改成这样:

{
    "api": {
      "services": [
        "HandlerService",
        "LoggerService",
        "StatsService"
      ],
      "tag": "api"
    },
    "inbounds": [
      {
        "listen": "127.0.0.1",
        "port": 62789,
        "protocol": "dokodemo-door",
        "settings": {
          "address": "127.0.0.1"
        },
        "tag": "api"
      }
    ],
    "outbounds": [
      {
        "protocol": "freedom",
        "settings": {}
      },
      {
        "protocol": "blackhole",
        "settings": {},
        "tag": "blocked"
      },
      {
        "protocol": "socks",
        "settings": {
            "servers": [{
                "address": "127.0.0.1",
                "port": 38801
            },{
                "address": "127.0.0.1",
                "port": 38802
            },
            {
                "address": "127.0.0.1",
                "port": 38803
            },
            {
                "address": "127.0.0.1",
                "port": 38804
            },
            {
                "address": "127.0.0.1",
                "port": 38805
            },
            {
                "address": "127.0.0.1",
                "port": 38806
            },
            {
                "address": "127.0.0.1",
                "port": 38807
            },
            {
                "address": "127.0.0.1",
                "port": 38808
            },
            {
                "address": "127.0.0.1",
                "port": 38809
            },
        
            {
                "address": "127.0.0.1",
                "port": 38810
            }]
        },
        "tag": "my-tor"
    }
    ],
    "policy": {
      "system": {
        "statsInboundDownlink": true,
        "statsInboundUplink": true
      }
    },
    "routing": {
      "rules": [
        {
          "inboundTag": [
            "api"
          ],
          "outboundTag": "api",
          "type": "field"
        },
        {
          "ip": [
            "geoip:private"
          ],
          "outboundTag": "blocked",
          "type": "field"
        },
        {
          "outboundTag": "blocked",
          "protocol": [
            "bittorrent"
          ],
          "type": "field"
        },
        {
          "outboundTag": "my-tor",
          "domains": [
            "domain:openai.com"
          ],
          "type": "field"
        }
      ]
    },
    "stats": {}
  }

然后把这个内容重新粘贴会复制的地方,点击保存,并且重启xui面板的服务端(这个配置不会修改你已经配置好的节点,也就是说没有副作用),不用担心这个配置会造成你节点的不可以,请放心食用。最后看看效果吧!

没设置之前的vps节点访问chatgpt:

Xnip2023-02-11_05-27-37.jpg

配置之后的效果:

Xnip2023-02-11_05-28-02.jpgXnip2023-02-11_05-28-12.jpg

嗯,真不错,真不错!如果你的vps上恰好安装了hysteria这样的好东西,那么怎么让hysteria也能支持这样的分流呢?

方法是有:可以让xray本地开启监听一个socks5的端口,然后让hysteria 使用本地指定端口作为数据的出口,这样的话,hysteria接收到的流量,再传

给xray,经过内部的分流之后从xray出去到目标机器上,这样就实现了,你的本机hysteria服务也能够访问chatgpt,也就是说当你使用改vps作为代理

节点的时候,客户端使用hysteria也能访问到chatgpt了,至此vps满血复活。

使用x-ui面板新建一个socks的入站:

Xnip2023-02-11_08-33-00.jpg

修改hysteria服务端的配置文件,在json配置文件中加入:

Xnip2023-02-11_08-34-23.jpg

然后保存之后,重启hysteria服务。这样就可以啦!