Telegram IP blocking

Mar 10, 2025    m. Mar 20, 2025    #gfw   #research  

中国关于Telegram的IP封锁

Telegram在2015年7月被中国封锁。以下是关键时间点:

‘电报’主要用于组织串联,里面的言论基本都是攻击党和政府的。(维权律师)在里面策划、组织各种声援活动,可以设定时间删除图片和文字,就是不想让政府知道。…“访民”刘星交代了通过“电报”等方式与翟岩民联系的情况,并承认翟岩民给他介绍了很多律师朋友。

考虑到,中国曾在该年3月使用其“大炮”(Great Canon)给百度注入恶意JavaScript代码、攻击GreatFire.org和GitHub网站,7月的来自东亚的攻击也非他莫属。不过,GitHub并没有因此移除或者阻止中国人看到任何内容,包括是恶意脚本中的两个目标;Telegram也没有这么做。

Telegram从被中国封锁的时候,就没有使用标准的HTTP(S)来通信。而是使用名为MTProto的自制加密协议,直接与内置的IP地址通信,没有DNS解析的过程。因此,GFW的DPI和注入器毫无办法,只有封锁其IP地址。

本文将介绍Telegram服务器的IP被中国封锁的情况。由于其IPv6地址空间十分庞大,仅考虑IPv4地址的封锁。

方法

在以下二位置运行扫描程序gscan_quic。

已知后者受GFW封锁影响。

关键配置为:

{
        "ScanWorker": 64,
        "ScanMode": "Ping",
        "VerifyPing": true,
        "ScanMinPingRTT": 1,
        "ScanMaxPingRTT": 3000,
        "Ping": {
                "ScanMinRTT": 1,
                "ScanMaxRTT": 3000,
                "InputFile": "iprange/iprange_as44907.txt",
                "OutputFile": "out_as44907.txt",
                "RecordLimit": 114514
        }
}

手动为AS切换配置,然后比较二者的扫描结果。

Telegram的IP地址列表

Telegram在其代码库中将数据中心按照数字命名,类似DC1、DC2、DC3…分别位于不同的地理位置。不过,本文使用Hurricane Electric的BGP Toolkit查找到5个名为Telegram的自治系统(Autonomous system)。

Table

扫描结果如下:

ASDC / locationrange blockedblocked / available
44907India, AsiaN/A0%
59930Miami, United States149.154.175.10/2450.0%
62014Singapore149.154.171.116/24
91.108.56.100/24
47.4%
62041Amsterdam, Europe149.154.167.1/24
91.108.56.100/24
13.0%
211157EuropeN/A0%

AS

这些AS和DC(数据中心)并非一一对应的。

AS44907

奇怪的AS,没有任何域名出现在上面。地理位置从IPv4上游来看有可能是印度,但是 IPinfo.io 和纯真数据库里都在阿塞拜疆。

AS名称是Telegram Messenger CDN。

没有观察到任何屏蔽。

AS59930 DC1 & DC3

DC1位于美国迈阿密,美洲地区号码的用户数据在此。DC3几乎没有被任何号码使用。

推测的屏蔽规则:

AS62014 DC5

位于新加坡的数据中心。在Telegram的5个AS中只有它有此处的Prefix。中国人使用+86手机号码注册,连接的是此处的IP地址。

推测的屏蔽规则:

AS62041 DC2 & DC4

位于荷兰阿姆斯特丹。俄罗斯和欧洲的手机号码所区分的用户数据分别在DC2和DC4。看起来是这几个AS里面Prefix最多的。部分Prefix和AS62014重合。

屏蔽规则:

AS211157

同样未对用户启用的AS,地理位置在欧洲。AS名称是Telegram-AS。

没有观察到任何屏蔽。

IP

各个DC的IP地址从tdlib里面找是最可靠的,不过为了方便我将复制一段mtprotoproxy.py 的内容:

TG_DATACENTERS_V4 = [
    "149.154.175.50", "149.154.167.51", "149.154.175.100",
    "149.154.167.91", "149.154.171.5"
]

TG_DATACENTERS_V6 = [
    "2001:b28:f23d:f001::a", "2001:67c:04e8:f002::a", "2001:b28:f23d:f003::a",
    "2001:67c:04e8:f004::a", "2001:b28:f23f:f005::a"
]

# This list will be updated in the runtime
TG_MIDDLE_PROXIES_V4 = {
    1: [("149.154.175.50", 8888)], -1: [("149.154.175.50", 8888)],
    2: [("149.154.161.144", 8888)], -2: [("149.154.161.144", 8888)],
    3: [("149.154.175.100", 8888)], -3: [("149.154.175.100", 8888)],
    4: [("91.108.4.136", 8888)], -4: [("149.154.165.109", 8888)],
    5: [("91.108.56.181", 8888)], -5: [("91.108.56.181", 8888)]
}

TG_MIDDLE_PROXIES_V6 = {
    1: [("2001:b28:f23d:f001::d", 8888)], -1: [("2001:b28:f23d:f001::d", 8888)],
    2: [("2001:67c:04e8:f002::d", 80)], -2: [("2001:67c:04e8:f002::d", 80)],
    3: [("2001:b28:f23d:f003::d", 8888)], -3: [("2001:b28:f23d:f003::d", 8888)],
    4: [("2001:67c:04e8:f004::d", 8888)], -4: [("2001:67c:04e8:f004::d", 8888)],
    5: [("2001:b28:f23f:f005::d", 8888)], -5: [("2001:67c:04e8:f004::d", 8888)]
}

其中的middle proxy看起来是给添加了ADTag的MTProxy服务器使用的。

这其中所有data center的IP地址已经被封锁,如AS章节所述。而middle proxy则只有2和5被封锁。不过申请ADTag的@MTProxyBot不会回应特定账户的要求,而是回复一行通用的错误信息和随机生成的错误代码。本人所有的账户都无法申请。


Repository: https://codeberg.org/antigng/TelegramIPBlockinginChina



Next: Blocked by whom