68 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 准备工作
**你可以选择 CloudFlare 的 workers 进行反代,但大陆的网络你懂的,这里介绍用你自己服务器反代方式**
搭建一个 TGbot api 反代,你需要:
1.一个不受 GFW 封锁的服务器(且安装好 Nginx)
2.一个域名(提前申请 SSL 证书)
<br/>
## 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 证书路径
<br/>
## 使用方式
:tada:然后执行 `systemctl restart nginx` 回到 Nezha 将原来的https://api.telegram.org/ 替换为 https://yourDomainName/ ,即可正常推送消息
<br/>
## 防止盗用
`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
```