用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的地址写为你的域名。

 

打完收工!

 

阅读剩余
THE END