• webAI
  • 使用AWS免费服务器搭建反向代理API

AWS(亚马逊云)新号可以免费领一年的1核1G服务器(带宽1G),利用这个可以白嫖一个反代/梯子

前提条件

一张支持VISA/万事达的信用卡

如果没有信用卡,可以在一个叫“全球付”的软件购买一张虚拟VISA卡,但是那个软件开卡收费30港币,且一次充值最少100港币,且充了后不能提现只能花掉,且苹果不支持它。如果你有在Google Play消费的需求/你想一次开三张虚拟卡/你有其他途径花掉余额,可以去开,否则不建议。

另外你需要对Linux命令行操作、以及云服务器的概念有基本掌握。
以及,AWS可以开小号,所以实际上可以嫖多台服务器。

白嫖步骤

  1. 挂上梯子(节点选日本),然后注册AWS账号(多个账号邮箱不能重复,信用卡可以复用)
    注意如果出现如下图的登录界面,直接选Don't have,然后以root用户登录

  2. 在右上角把地区切换为亚太地区(东京),然后在搜索栏搜索 EC2,打开云服务器控制台

  3. 点击“实例”-“启动新实例”(注意!每个账户只能免费部署一个实例,多开会产生费用,想多开可以注册多个账号)

    将系统镜像改为你想要的(我使用Ubuntu 22.04,推荐这个),架构保持x86,实例类型选免费的里面最好的,然后创建密钥对,注意密钥文件只会给你一次下载机会,如果多开账号记得命名时区分不同密钥,接着勾选允许ssh、允许http、允许https流量,然后把存储改成30GB,页面顶部名字改成方便记忆的,最后从上到下检查:

    • 名称 - 改成了方便记忆的名字

    • 系统镜像 - 推荐Ubuntu 22.04

    • 架构 -x86

    • 实例类型 - 右上角“符合条件的免费套餐”

    • 密钥对 - 你已经妥善保存,并起了方便记忆的名字

    • 网络设置 - 允许了来自任何位置的ssh、http、https

    • 配置存储 - 30GB的gp2或gp3

      没有问题后,点击启动实例。

  4. 非常重要:不要使用梯子的tun模式(意思是cmd里ping不通google的状态下),在自己的设备上使用密钥ssh登录服务器,然后在服务器终端ping国内网站(百度、b站),必须能登录上服务器、并且服务器能ping通国内网站才可以,否则说明IP已经被墙,你需要在实例管理页面的“实例状态”那里点击“终止(删除)实例”,然后按刚才的步骤重新创建一个,直到拿到一台IP没被墙的实例。

搭建反代

不要安装宝塔面板
可以自己上网搜索怎么搭建Nginx反代/梯子,不过这里简单给一个示范(Ubuntu)

Nginx反代(代理API)

建议先弄一个域名,没有可以去这里五块钱买一个(不过域名不是必须的)

  1. 安装Nginx
sudo apt update
sudo apt install nginx
  1. 启动Nginx
sudo systemctl enable nginx
  1. 配置反代,在 /etc/nginx/conf.d/ 目录下新建一个文件,命名为 xxx.conf (自己起名字),内容填写如下
server {
    listen 80;
    server_name example.com; # 填你的域名,没域名就填服务器公网IP

    location / {
        proxy_pass https://api.telegram.org; # 目标服务器地址,以tg为例
        proxy_set_header Host api.telegram.org; # 这里要改成和上面域名一致
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

可使用vim或nano编辑器,不会用可百度一下,编辑提示只读可sudo一下

  1. 重启Nginx
sudo systemctl restart nginx

至此,反代已经完成,代理地址是http://example.com(不要忘了设置域名DNS解析,没域名就换成IP),但没有https可能导致安全问题,所以推荐配置ssl证书开启https,以下是使用Let's Encrypt快速部署证书的步骤(这个就必须要有域名了)

  1. 安装certbot
sudo apt install certbot python3-certbot-nginx
  1. 申请证书
sudo certbot --nginx -d example.com

申请证书时会让你输入邮箱,编一个即可,成功后会有成功提示,然后程序会自动配置好证书、开启https

代理使用方法

例如你配置了代理https://api.telegram.org,那么你在使用代理时,就要把https://api.telegram.org替换成https://example.com,注意只替换你代理的部分,其余部分保持不变;
例如bot发送消息的API为

https://api.telegram.org/bot

你只需要替换其中你代理的部分,变为

https://example.com/bot

后面的/bot不能变

晴雪 更改标题为「使用AWS免费服务器搭建反向代理API

喔其实不用域名直接自签证书就行,不过我自己有域名,所以是certbot一键部署了……