用CloudFlare的workers部署Telegram Bot通知反代
众所周知的原因,如果你要在中国收发Telegram消息是很困难的,尤其是对于部署在中国的网络系统,比如uptime-kuma,且习惯用TG来发送通知的你!
那么,此时你需要用到基于CloudFlare workers的的Telegram Bot通知反代。
这个教程是基于1024.ee编写的代码。
一、创建一个新workers
假设你已经使用过workers了,那么去新建一个workers,并将如下代码贴入
const whitelist = ["/bot888518123:"];
const tg_host = "api.telegram.org";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
function validate(path) {
for (var i = 0; i < whitelist.length; i++) {
if (path.startsWith(whitelist[i]))
return true;
}
return false;
}
async function handleRequest(request) {
var u = new URL(request.url);
u.host = tg_host;
if (!validate(u.pathname))
return new Response('Unauthorized', {
status: 403
});
var req = new Request(u, {
method: request.method,
headers: request.headers,
body: request.body
});
const result = await fetch(req);
return result;
}
把:bot1466364112修改成你的TG API的数字部分
然后保存并部署。
1024.ee写了两种模式,而我更倾向用第一种,至少第一种在uptime-kuma上,部署成功。
二、配置workers的路由
这是常规操作,创建一个用来反代的域名前缀解析,并打开彩色云朵,解析地址为:2.2.2.2,
然后添加workers的路由,指向这个workers。
三、修改各类TG的地址
至此,所有指向api.telegram.org的流量都可以用你解析的域名来中转了。
比如在uptime-kuma,你需要修改文件。
比如在SPUG,你在定时任务失败通知处直接将webhook的地址写为你的域名。
打完收工!
阅读剩余
版权声明:
作者:codion
链接:https://mrchou.com/internet/reverse-proxy-telegram-alert-with-cloudflare-workers.html
文章版权归作者所有,未经允许请勿转载。
THE END