剪藏#剪藏#小化先森

Telegram机器人在国内网络环境下部署

2026 年 7 月 21 日1 分钟
分享Twitter / XTelegram微博

前言

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

Notion image

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

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

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

准备材料

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

反代TG

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

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

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

Notion image

然后点击从 Hello World! 开始

Notion image

直接点击部署

Notion image

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

Notion image

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

JAVASCRIPT
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;
  }
};

Notion image

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

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

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

修改代码

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

JAVASCRIPT
app = ApplicationBuilder()\
    .token("你的TOKEN")\
    .base_url("https://你的反代域名/bot")\
    .connect_timeout(20)\
    .read_timeout(30)\
    .build()

原文地址: https://mp.weixin.qq.com/s?__biz=Mzk5MDg4MzkwMw==&mid=2247483787&idx=1&sn=8ed139615fb93e4070fea30d5f5a1c34&chksm=c4e0b44e71a893e03228722a0d81d7ff2ef8470a8932fc7fb09c36ed3e810f223458affe6a84&mpshare=1&scene=1&srcid=0721Bck5S9Z3vl0IGZpu9Xtd&sharer_shareinfo=1731fe9070c841b4ecad2c2a159ccc40&sharer_shareinfo_first=1731fe9070c841b4ecad2c2a159ccc40#rd

相关文章