【tgbot api 反代】Telegram机器人api被墙解决办法:自建反代
本文最后更新于:2022年11月4日 下午
如果我们需要在大陆的服务器/网络上使用telegram bot的API,那要么翻墙要么反代。本来可以用CloudFlare的workers进行反代,但前不久它已经被墙了。但是我们可以用自己的国外服务器进行反代。
准备
- 不受GFW封锁的服务器
- 一个没有被墙的域名
安装Nginx
这个应该不必说。
1 |
|
配置Nginx
找到你nginx的配置文件,在http{}中加上下面的配置。
目前较新版本的nginx是在 /etc/nginx/conf.d/
文件夹下。
老一点的版本是在: /etc/nginx/sites-available/
文件夹下。
新建.conf
结尾的文件即可。例如:vim /etc/nginx/conf.d/telebotapi.conf
然后加入下面配置 (记得把 yourDomainName
换成你的域名,有两处):
1 |
|
yourDomainName
-你准备的域名
测试一下语法是否正确:
1 |
|
重新加载配置:
1 |
|
🎉然后执行 systemctl restart nginx
安装certbot(申请证书用)
如果已经有证书,直接将Nginx配置文件中ssl_certificate server.pem;
ssl_certificate_key server.key;
写入你的证书地址,并取消注释(删除#
)即可,那可以跳过本小节。
ssl_certificate
-SSL证书路径ssl_certificate_key
-SSL证书路径
不知道的可以参考文章:自动为你的域名申请证书:certbot的安装和使用
使用方式
将原来的 https://api.telegram.org/
替换为 https://yourDomainName/
,即可正常推送消息
防止盗用
用防火墙限制访问的源IP
serverIp
-你用来访问反代域名的ip地址,你系统安装的那个就用那个命令,ufw
iptables
都可。
1 |
|
但问题是如果你用了反代的服务器建了别的站,会导致别的站不能访问。不过你可以换个端口来反代telegram bot,相应的,防火墙规则也换一个端口就好。
参考文章
本文参考哪吒面板文档:TG api被墙解决方案