/ 科技 / 3400 浏览

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

 

[c-alert type="success"] 打完收工![/c-alert]

 

Docker方式部署Caddy+PHP+Mysql
Docker方式部署Caddy+PHP+Mysql
Docker方式部署V2Board
Docker方式部署V2Board
Hetzner Storage Box:可能是性价比最高的存储
Hetzner Storage Box:可能是性价比最高的存储
使用Dnsmasq+SNIproxy一键脚本解决送中机
使用Dnsmasq+SNIproxy一键脚本解决送中机
NetCUP:自建EMBY最具性价比服务器购买指南
NetCUP:自建EMBY最具性价比服务器购买指南
一个让小鸡自动回春的WARP脚本
一个让小鸡自动回春的WARP脚本

1 条评论

  1. no comments.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注