Skip to content
On this page

准备工作

你可以选择 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 证书路径

使用方式

🎉然后执行 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