前言

最近在琢磨Telegram(下文简称TG)机器人,机器人都在本地调试好了,结果我部署在香港服务器后却报了错

报错图

谁他娘能想到我的香港服务器连不上TG官方的服务器...

但是,我总不能为了个机器人专门去买其他国家地区的服务器吧,完全没必要,我就尝试使用代理IP,但是免费的代理IP压根没法用,付费的又巨贵

那这时候就可以使用Cloudflare(下文简称CF)反代TG官方api,既能保证安全,还免费

准备材料

  1. cf账号
  2. 一个在CF的域名(最好在国外域名商注册,避免被按头)

反代TG

先进入CF控制台(https://dash.cloudflare.com/)并登录账号

首先得确保你的域名已经被添加至CF,不会添加到参考这篇文章:CloudFlare添加站点域名,配置CDN, HTTPS SSL证书 - 知乎

进入计算栏目下的Workers 和 Pages并点击创建应用程序

然后点击从 Hello World! 开始

直接点击部署

随后点击部署中的编辑代码

删掉原来的默认代码,填入下方代码:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    const target = new URL(`https://api.telegram.org${url.pathname}${url.search}`);
    const res = await fetch(target, {
      method: request.method,
      headers: request.headers,
      body: request.body
    });
    return res;
  }
};

这个代码是我实测有用的(豆包万岁),因为我试过网上那些泛滥教程的代码,部署后出现的问题很多,代码看起来很长很专业,用起来全是问题,api返回的信息跟官方都不一样了或者压根不支持一些api

代码部署完后返回,在里面添加域名,选择你的域名然后填入二级域名就行了

这边补充下,CF虽然会送你一个二级域名,但是这个域名在国内依然无法访问,所以只能添加你自己的域名

修改代码

代码中指定自定义 base_url,示例:

app = ApplicationBuilder()\
    .token("你的TOKEN")\
    .base_url("https://你的反代域名/bot")\
    .connect_timeout(20)\
    .read_timeout(30)\
    .build()
590259.webp
最后修改:2026 年 07 月 17 日
如果觉得我的文章对你有用,请随意赞赏