Telegram数据中心大揭秘:DC5频繁宕机、DC3消失,分配规则究竟如何?

📅 2026/7/16 17:15:02 👁️ 阅读次数 📝 编程学习
Telegram数据中心大揭秘:DC5频繁宕机、DC3消失,分配规则究竟如何?

Telegram数据中心概况

Telegram宣称拥有5个数据中心(DC),在代码和文档中分别被称为DC1至DC5。其中,DC1和DC3位于美国迈阿密;DC2和DC4位于荷兰阿姆斯特丹;DC5位于新加坡。每个账号注册时关联一个数据中心,且不会随电话号码或地理位置改变,用户不能自由选择数据中心,连错会收到服务器错误提示。

从频繁宕机的DC5说起

在5个数据中心中,DC5在中国Telegram社区格外“出名”,是因为它频繁宕机。宕机时,使用该数据中心的用户无法使用Telegram,圈子里常讨论“DC5怎么又宕机了”,用户只能等客户端恢复正常后,和其他数据中心用户群聊吐槽。

DC2和DC3的谜团

为满足群成员好奇心,有人创建机器人查询用户所在数据中心。群成员查看发现,+86号码注册用户在DC5,面临宕机风险;+1号码注册用户在DC1,享受连接速度和稳定性;欧洲号码注册用户在DC4,在中国社区少见。但通过“大数据查询”,似乎没有DC2或DC3的用户。有人猜测DC2和DC3没用户,也有人分析它们分别是DC1和DC4的从属数据中心,主数据中心繁忙时接受注册。

Telegram数据中心分配规则(2022年5月)

简而言之,DC1、DC2、DC4和DC5根据注册时电话号码的国家代码分配,随时接受新用户,有大量现有用户;DC3曾有用户,2020年左右现有用户可能已转移到DC1,目前可能没用户,也不再接受新注册。实际上DC2有大量用户,只要电话号码国家代码属DC2范围,用户会被分配到DC2。机器人未检测到DC2用户,是因为检索方法有缺陷。

我实际位于哪个数据中心?

目前有3种常见方法确定数据中心。方法1(登录法):用会分配到DC2的电话号码,通过MTProto协议连到DC1,调用auth.sendCode接口发验证码注册账号,服务器返回`PHONE_MIGRATE_2`错误,表明应连到DC2,此方法适用于已注册账号,但需知道电话号码,难查群成员数据中心。方法2(头像/文件法):注册DC2新账号,用第三方客户端(Plus Messenger)登录查看,上传头像后显示位于DC2,因客户端从userProfilePhoto结构的`dc_id`字段检索数据中心,此方法根据用户上传文件所在数据中心确定。方法3(Web CDN法):用机器人查询新账号数据中心,显示位于DC4,因机器人通过Telegram的Web CDN确定,新账号头像域名以cdn4开头,导致误判,DC2和DC3“借用”DC4和DC1域名提供服务,所以机器人无法识别DC2用户。

DC3的消失

用方法2确定用户数据中心后发现,全球范围内DC2用户不少,但DC3用户罕见,只找到两个位于DC3的用户`@urie**`和`@flowinglig**`。分析发现,他们实际可能不在DC3,如`@urie**`上传的头像和消息历史图片,新的多在DC1。此外,`@urie**`2021年测试结果也是DC1。因无法获取他们的电话号码,无法用登录法准确测试,只能推断他们已从DC3转移到DC1。为确认DC3不再接受新用户,生成超10000个全球不同地区电话号码测试,结论是DC3确实不再接受新用户,现有用户可能已全转移到DC1。若想成为特定数据中心用户、避免DC5宕机风险,或测试机器人可靠性,可参考图片用特定国家代码电话号码注册。由于Telegram服务器和运营机制非开源,文章许多结论基于推测。