## 准备工作 **你可以选择 CloudFlare 的 workers 进行反代,但大陆的网络你懂的,这里介绍用你自己服务器反代方式** 搭建一个 TGbot api 反代,你需要: 1.一个不受 GFW 封锁的服务器(且安装好 Nginx) 2.一个域名(提前申请 SSL 证书)
## NGINX 配置 编辑你 Nginx 的配置文件,在 http{} 中加上如下配置 ```nginx # http强制跳转到htpps server { listen 80; listen [::]:80; server_name yourDomainName; # Enforce HTTPS return 301 https://$server_name$request_uri; } ## https server { listen 443 ssl; listen [::]:443 ssl; server_name yourDomainName; ## ssl密钥路径自己改改 ssl_certificate server.pem; ssl_certificate_key server.key; ## root非必要 root /var/www/tgbot/; ## dns必须写,不然会报502错误 resolver 8.8.8.8; ## 以bot开头的请求都会被正则匹配到 location ~* ^/bot { proxy_buffering off; proxy_pass https://api.telegram.org$request_uri; proxy_http_version 1.1; } ## 和上面root一样非必要,这个主要是用来确认服务器状态的。也可以改成return 403 location /{ try_files /$uri $uri /index.html; } ## no log no fix error_log /var/log/tg.log error; } ``` `yourDomainName` - 你准备的域名 `ssl_certificate` - SSL 证书路径 `ssl_certificate_key` - SSL 证书路径
## 使用方式 :tada:然后执行 `systemctl restart nginx` 回到 Nezha 将原来的https://api.telegram.org/ 替换为 https://yourDomainName/ ,即可正常推送消息
## 防止盗用 `serverIp` - Agent 的 ip 地址,你系统安装的哪个就用哪个命令,ufw iptables 都可. ```bash #ubuntu ufw allow proto tcp from serverIp to any port 443 #centos iptables -I INPUT -p tcp --dport 443 -j DROP iptables -I INPUT -s serverIp -p tcp --dport 443 -j ACCEPT ```