跳转至

一段预告过的降速:8/13 用 OONI 记录台湾北部移动网络的 30 分钟

一起测 8 月 13 日的移动网络降速

8 月 13 日周四 14:30 到 15:00,基隆、台北、新北、桃园、新竹市、新竹县、宜兰的移动网络会降速 30 分钟。降速属于「城镇韧性演习」的一部分,由三大电信运营商同时执行。官方公告写明语音通话、短信与小区广播照常,视频流、视频通话、移动支付、云端同步等高流量服务受影响1。NCC 对演练时段的建议是预先为离线情境做准备2

降速的幅度,官方对外说明过两次。防务部门负责人顾立雄 7 月 20 日在立法机构说明是「降速到 4G、5G 的百分之一」,行政院则在 8 月 10 日中部场结束后补充做法:由电信运营商透过核心网络限流,将移动网络下载速率调降至 256KB。两个说法的量级一致,测量时可以此为预期落点。

日期、时段、七个县市、三家运营商,降速的每个边界都在演练前公开。网络降速的研究少见如此明确的前提,多数案例由用户先察觉变慢,研究者事后回推,时间边界始终模糊。预告式的断网在其他国家并非首见,例如考试期间的全国性断网6。就公开可查的记录而言,预告式的降速较为少见,并且能切分到各家运营商的粒度。

8 月 10 日中部场的同一个时段,全台湾的 OONI 观测里没有任何一笔来自移动网络的性能测量。北部场是今年演习的最后一场,8 月 13 日过后不会再有相同的条件。

若你身在这七个县市,那半小时手机本来就会变慢。与其等它过去,不如顺手留下一笔记录。

为什么要演练移动网络降速,给不在台湾的读者

行政院对演练的说明是「模拟极端情境,验证政府在有限通讯环境下之应变能力」,设想的状况包含天灾、大规模网络攻击与复合式灾害,目标是提升整体通讯与社会防卫韧性1。公告本身没有提到战时或军事演习,框架放在民防与备援。移动网络降速是参考日本、韩国、北欧等国经验后「首度加入」的项目1,范围限于台湾首度,不是国际首例。

对台湾来说,通讯中断不是假设性的问题。台湾是岛屿,对外连接依赖海底电缆,数字发展部设有「海缆障碍状况」的公开页面,逐条列出故障位置、替代路由与预计修复时间7。以 2026 年 7 月 28 日的更新为例,当时有四条海缆处于故障状态,最近的一笔发生在 7 月 14 日,预计修复日期落在 8 月 14 日,也就是演习的同一周。想看这些缆线的实际走向,可以打开 Tor 中继地球仪,上面标了 228 条海缆线段与台湾周边的障碍状态。

真实事故的规模比演练大得多。演练只降速 30 分钟、限定十四个县市、语音与短信照常。海缆中断则可能持续数周,影响整个区域的对外连接。演练的用意在验证备援机制与宣导准备,不是重现事故。

8 月 13 日要做的三件事

全部时间为台湾时间(UTC+8)。演练时段是 14:30 到 15:00

开始之前,8 月 13 日前先完成

安装 OONI Probe,App Store、Google Play 与 F-Droid 都可下载,开源免费。OONI 开发此工具的目的,是把网络封锁与连接质量变成可验证的公开数据,完整介绍见什么是 OONI。首次启动有一段设置流程,当天才安装会来不及。装好后先运行一次,确认能正常完成。

接着设一个 14:35 的闹钟,降速中的测量最重要。行有余力再加上 14:1515:10。下午开会时很容易忘记,设闹钟比记忆可靠。真的错过也没关系,补做 15:10 那一次就好,只有一笔一样送得出去。

步骤一、关闭 Wi-Fi 与 VPN,改用移动数据

透过固网连接的 Wi-Fi 在演练中不受影响,测量若在固网的 Wi-Fi 上完成,结果等于零。手机常会自动回连办公室或住家的 Wi-Fi,运行前请先确认已切到移动数据。手机分享出来的热点虽然底层走移动网络,OONI 仍会把网络类型记成 Wi-Fi,一样不要用。

VPN 与 Tailscale 都要先关闭。一般 VPN 会把流量绕出去,测量结果只反映 VPN 运营商的线路,记录下来的 ASN 也会变成对方的。Tailscale 就算没有启用 exit node,在 iOS 与 Android 上仍是透过系统的 VPN 机制运作,OONI Probe 会把网络类型记成 vpn 而不是 mobile,测量数据就标不出是移动网络测到的。App 侦测到 VPN 时会跳出提醒,看到提醒请先关掉再运行。测量结束后记得把 Tailscale 开回来,靠它连公司内网的人特别容易忘记。

测量完成后可在结果页看到网络名称与 ASN(自治网络的全域编号,运营商、企业、学校都有各自的号码),确认测量确实在移动网络上完成,名称为自己的运营商。

先确认你的移动数据额度

性能组里的连接速度测试(ndt)会量吞吐量,运行时尽量用满当下可用的带宽。App 在运行前就会标出预估值,画面上写的是 5 到 200 MB、约 1 分 30 秒,实际落点随连接速度而定。降速中的测量因为带宽被压低,用量最小。14:15 与 15:10 都在正常速度下运行,都会落在估计值的高端。

非无限流量的人建议做降速中的测量,再从 14:15 或 15:10 挑一次当对照,两次就有比较的基础。

步骤二、运行「性能」测试

开启 App 后点「测试」,选「性能」,勾选要运行的测项,再按下运行。性能组包含 ndt(连接速度)与 dash(模拟视频流的播放行为,估算可达成的位元速率)两个测项,正是测量降速所需,Android 与 iOS 都提供。

OONI Probe 的性能页面,上方标示预估用量 5 到 200 MB、约 1 分 30 秒,中央为运行按钮,下方为上次测试结果

步骤三、至少在 14:35 到 14:55 之间做一次

最重要的是降速当下的测量。演练 14:30 开始、15:00 结束,前后各留五分钟避开启动与恢复的过渡,所以 14:35 到 14:55 之间开始都可以。ndt 约需 1 分 30 秒,最晚 14:55 开始还来得及在结束前完成。

只做一次也有价值,能跟其他参与者、跟隔日同时段互相参照。时间允许再加上前后两次,同一支手机自己的前后对照最为明确。

台湾时间(UTC+8) UTC 用途 优先序
14:3514:55 06:3506:55 降速中 一定要
14:15 06:15 降速前的对照点 有空就做
15:10 07:10 恢复后 有空就做

每次都要用同一支手机、同一个号码,并且都在移动网络上完成。位置能固定会让数据更好比对,中途需要移动也不影响参与,只要确认没有切回 Wi-Fi 即可。

如果行有余力,8 月 12 日周三 14:35 也测一次。多一笔,隔日同时段的对照会强很多,成本一样是按一下。

14:30 之后才看到本文的人

只要还在 14:55 之前就直接做一次,时间过了就补做 15:10。手上只有一笔也送得出去。

降速中上传失败属于正常

测量结果需要上传,而演练期间带宽已被压低,上传可能延迟或失败。不需要重复运行,OONI Probe 会把结果排入队列,等网络恢复后自动补传。

想多做一点的人,降速期间可另外运行含 Tor 与 Psiphon 的测试(英文界面为 Circumvention),能看出降速对规避工具的影响。规避工具那组会做封锁判定,降速造成的连接失败会被记成 anomaly,成因是带宽而非审查,社区整理结果时会一并说明。

按下运行之前,该知道的隐私影响

一句话的版本:性能测试会把你当下的对外 IP 留在 M-Lab 的公开数据集,而移动网络的 IP 浮动、没有账号绑定,实务上难以对应到个人。不想留下记录的人,改运行网页连接测试(web_connectivity,英文界面为 Websites)即可,它不经过 M-Lab。以下是完整说明。

先分清楚两个数据库。OONI 自己发布的测量结果全部公开,内容包含所处的 ASN 与时间戳记,不包含个人 IP 地址。性能组的 ndt 另外会把数据送到 M-Lab,那是另一个机构、另一份数据集,规则不同。

M-Lab 的隐私政策载明测试数据会对外公开,公开内容包含你的 IP 地址与日期时间,并且以长期研究为由无限期保留,公开数据集里不做匿名化。政策提供的删除途径援引 GDPR 与 LGPD,主要对象是欧盟与巴西的数据主体。M-Lab 声明政策原则上适用于所有地区的用户,但条文没有处理台湾这类第三地的请求资格,实务上能不能受理并不明确。App 的性能页面本身也附了免责声明,说明测试透过第三方服务器进行,无法保证 IP 地址不被他人收集。

所以运行 ndt 等于把当下的对外 IP 地址写进一份公开且长期保存的数据集。M-Lab 不认证用户、不保存个人的测试历史,移动网络的 IP 又多为浮动,第三方研究者或一般查询者很难单独从一个 IP 对应回特定个人。上面说的是 M-Lab 与 OONI 这一侧的识别能力。你的运营商本来就能从连接记录对应到号码与 IP,那份记录与测不测量无关,也不会因为参与而增加。是否留下记录,请自行斟酌。

中部场那 30 分钟,移动网络一笔性能测量都没有

8 月 10 日 14:30 到 15:00,同样的降速在中部七县市执行过一次(UTC 时间 06:3007:00)。演练结束后,我们查询 OONI 的公开数据库,看台湾在该时段留下了什么。

测项 该时段全台笔数 来源网络
ndt(连接速度) 1 AS131584 台湾智慧光网,固网
dash(串流位元速率) 1 同一个固网 ASN
web_connectivity(网站可达性) 803 几乎全在固网,HiNet 占 593 笔

中华电信移动的 AS17421 是 0 笔,远传的 AS9674 是 0 笔。

唯一的速度测量执行在固定光纤上,测量的网络并未降速。那 30 分钟全台湾共有 902 笔 OONI 观测,其中没有任何一笔是移动网络上的性能测量。演习依南部、中部、外离岛、东部、北部的顺序分区实施,北部场是最后一场3,同样条件的降速要再等到明年。

台湾的 OONI 观测,四成来自 HiNet

中部场的结果反映了台湾 OONI 数据长期的分布。2026 年 7 月 12 日到 8 月 11 日之间,全台湾有 645,039 笔 web_connectivity 测量,分布在 25 个 ASN:

网络 近 30 天笔数 占比
AS3462 HiNet 253,546 39.3%
AS131584 台湾智慧光网 191,257 29.7%
三家移动运营商合计 23,010 3.6%
 └ AS24158 台湾大哥大 20,099
 └ AS17421 中华电信移动 2,342
 └ AS9674 远传 569

剩下的也以固网为主,StarVerse 与 DaDa Broadband 各有数万笔,另有辅仁大学、TANet 与台大几个校园网络。

真正需要的性能测项,总量少得多。同一段期间全台湾只有 1,008 笔 ndt。移动端看起来占了一半以上,548 笔,但其中 528 笔来自台湾大哥大一家,中华电信移动只有 16 笔、远传 4 笔。缺口集中在中华电信移动与远传。

要说明台湾的网络环境,目前可引用的数据主要反映家用固定宽带的状况。依 NCC 统计,2026 年第 1 季全台移动号码约 2,833 万户,多数人一天里大半时间透过移动网络上网。

三家都是全国性运营商,OONI 上的测量分布却差了一到两个数量级。性能测项里台湾大哥大有 528 笔,中华电信移动只有 16 笔,差距显然不是用户规模造成的。

公开的 aggregation API 只提供测量笔数,不提供设备数,所以上表无法排除少数几台设备反复测量的可能。台湾大哥大同时经营移动与固网,中华电信也是,因此单看一笔 AS24158 的测量,判断不出它来自手机还是家用调制解调器。

为什么三家要一起测

上面那项辨识问题,正好说明为什么要挑演练时段。演练已公告时段与县市范围,在该时段内、在公告范围中,AS24158AS17421AS9674 出现的移动端测量有明确的情境可对应,ASN 至此才足以定位到运营商。平常散在各处的测量缺少对应的情境。

同一时段只消除了「时间」一个变因。地点、基站负载、手机型号、信号强度都仍然存在。三十支手机散在七个县市,得到的仍是一批条件互异的观测点,结论只能停在粗粒度的判断,例如三家是否都出现可观察的吞吐下降、下降的量级是否接近。任何精确的运营商排名都超出这批数据能支撑的范围。

即使如此,三家同时面对同一道指令、同一个 30 分钟,仍然是难得的对照时机。单独一家测得再密,也只能得到那一家的曲线。

降速的 30 分钟可以观察到什么

行政院说明的做法是核心网络限流加上固定的下载速率上限,属于无差别的带宽管制,ndt 应可测到。不过公告另外列的受影响服务类型(视频流、视频通话、移动支付、云端同步)读起来像依应用层分类,三家运营商对受影响范围的描述也各自不同。台湾大哥大把 LINE、WhatsApp、M+ 等通讯软件列进会出现连接延迟与不稳定的范围4,中华电信写的是「影音、视讯连线、行动上网及部分物联网应用」5,行政院的版本则是文字传输正常1。限流若落在带宽层,ndt 会直接反映。若偏向应用层分类,ndt 对 M-Lab 的流量特征未必被归进受限类别,可能测到接近平常的速度。测量结果本身就能分辨属于哪一种,也是降速期间最值得观察的一项。

带宽被压低时 Tor 与 Psiphon 能否建立连接,是社区长期关注的题目,周四下午正好是现成的测试场。降速结束后速度回复所需的时间,则由 15:10 那一笔回答。

有了平时与降速中的对照,台湾的移动网络也才会有一份基准。少了基准,未来发生非预期的网络劣化时,任何异常都只能停在「大家觉得变慢」。价值随参与量放大。几十支手机足以回答「三家是否都出现明显下降」,要谈到分布与信赖区间则需要数百支。

ndtdash 只能涵盖高流量那一侧,公告称正常运作的语音、短信与小区广播不在两个测项的能力范围内。能观察到的只有界线的其中一边,仍然值得做。社区自己有能力描述网络当下的状态,本身就是韧性的一部分。

解读时须留意 ndt 的测量对端是 M-Lab 的服务器,数字里同时包含最后一哩与到 M-Lab 节点的国际线路,两者无法从单笔结果中分离。官方公布的 256KB 可作为预期落点,先掌握量级所在,判读时较有依据。

参与密度本身也是变因。ndt 会用满可用带宽,同一个基站底下若有多支手机在同一分钟运行,彼此会抢已经被压低的带宽,测到的低速就有一部分来自参与者之间的竞争。以每家电信十支、散在七个县市的规模来说不太会相互重叠,整理结果时仍要把同时段的参与数一并记录。

一起来

安装 OONI Probe 并运行一次。设一个 14:35 的闹钟。把本文转给住在北部七县市或在当地工作的朋友。特别欢迎中华电信与远传的用户,两家过去 30 天的性能测量分别只有 16 笔与 4 笔。以远传来说,10 支手机在周四下午各做三次,一个下午就会超过它整个月的累积量。

不在北部七县市的人也可以在同样的时间点测一次。降速范围外的测量构成对照组,能协助分辨哪些变化来自演练、哪些属于当天的一般波动。

测完之后,可在 OONI Explorer 用自己的 ASN 与时段查到记录。社区会在演练后把三个时段、各家运营商的结果整理成一篇后续文章。有问题或想一起整理结果的人,欢迎到社区的 Matrix Public Space 讨论。

常见问题

为什么只做性能测试,不把全部测项都运行一遍

性能组以外的测项都会做封锁判定,而降速会让它们产生假的封锁信号。

web_connectivity 为例,判定方式是拿手机端的结果跟 OONI 的测试辅助服务器比对。手机在限速下大量逾时,辅助服务器在数据中心运作一切正常,比对出来会被标成 tcp_iphttp-failure,也就是封锁的判定签名。几百人同时在限速下运行有封锁判定的测项,等于在台湾的公开数据里注入一批看起来像审查的记录。

性能组不会产生误判的封锁信号。ndtdash 在后端没有实作封锁判定,全球近 90 天各 20 万笔测量的 anomaly 都是 0,只会留下吞吐量的数值。

时间也不允许。性能组约 1 分 30 秒,稳稳落在区间内。网站那组是一份网址清单,正常网络下就要数分钟才能完成,在限速下很可能跨过 15:00,把降速中与恢复后混进同一份报告。

会用掉多少移动数据

App 运行前会显示预估用量。降速期间带宽已被压低,用量最小,14:15 与 15:10 在正常速度下运行,会落在估计值的高端。非无限流量的人优先做降速期间的测量。实际数字见上方的额度提醒。

我的 IP 会被公开,风险有多大

性能测试会把你的 IP 留在 M-Lab 的公开数据集,长期保存且不做匿名化。改做网页连接测试就不会经过 M-Lab。判断风险高低所需的细节,见上方的隐私一节。

我不在北部七县市,还要测吗

可以,而且有参考价值。范围外的数据能当对照组,用来排除当天的一般网络波动。

开会中错过了 14:35 到 14:55 怎么办

补做 15:10。就算只补一笔,也能跟其他参与者或隔天同时段对照,无须凑满三次。

参与这次测量有法律风险吗

测量的动作是在自己的手机上测自己的连接速度,与一般测速 App 的操作无异,不干扰演练,也不影响其他人。OONI Probe 是全球长期使用的开源工具。若你所属的组织有自己的合规考量,可以只做网页连接测试,或选择不参与。

号召测量是为了查核官方公布的 256KB 吗

本文的出发点是演练当天难得的观测条件,时间、地点、运营商都预先公开。官方公布的数字在文中作为预期落点,让参与者知道数据会落在什么量级。测量的对象是网络状态,演习的成效与必要性不在讨论范围。

怎么确认我的测量成功了

完成后结果页会显示网络名称与 ASN,确认上面是自己的运营商,不是 Wi-Fi 也不是 VPN。测量送出后同样能在 OONI Explorer 查到自己的记录。

双卡手机要注意什么

先确认移动数据走的是哪一张卡。手机装了两张 SIM 卡的话,容易以为自己在测某一家,实际上数据从另一家出去。结果页显示的 ASN 是最后的确认。

数据与前提

文中的 OONI 数字分成三组,查询日皆为 2026-08-11,端点与参数如下,读者可自行重新查询。

中部场 30 分钟窗口(表格中的 902、803、593 与两笔性能测量)用 measurements 端点,probe_cc=TWsince=2026-08-10T06:30:00Zuntil=2026-08-10T07:00:00Z,逐一查 test_namendtdashweb_connectivity,回传的每笔都带 probe_asn

30 天的 ASN 分布(645,039、253,546、191,257、23,010 与三家移动运营商的细项)用 aggregation 端点,probe_cc=TWtest_name=web_connectivityaxis_x=probe_asnsince=2026-07-12until=2026-08-12。性能测项的 1,008、548、528、16、4 用同一组参数,test_name 换成 ndt。aggregation 的 until 不含当日,所以 until=2026-08-12 涵盖到 8 月 11 日。

性能测项的 anomaly 为 0 用 aggregation 端点,不带 probe_cc 代表全球,since=2026-05-13until=2026-08-12test_name 分别为 ndtdash。同一组参数换成 torweb_connectivity 可以看出对照,两者的 anomaly 分别是 13.95% 与 8.05%。

上列数字会随时间继续累积,之后重查会得到略高的值,分布的形状则稳定。

延伸:之后如何用 OONI 佐证研究

本次号召针对单一事件,方法本身可以重复使用。OONI 的数据有四个入口,用途各不相同:

  • OONI Explorer:网页界面,适合查单笔测量、看某个国家或 ASN 的趋势,无须写程序。
  • Aggregation APIhttps://api.ooni.org/api/v1/aggregation,免验证免密钥,可依国家、测项、ASN 切分做统计。本文的 30 天 ASN 分布与比率出自此端点。sinceuntil 只接受日期,带上时间会回 date_from_datetime_inexact 错误,所以它适合看天级以上的趋势。
  • Measurements APIhttps://api.ooni.org/api/v1/measurements,同样免验证,接受精确到秒的时间窗,回传逐笔记录。本文中部场 30 分钟的表格出自此端点。
  • AWS S3 公开数据集ooni-data-eu-fra,逐笔原始 JSON,适合需要检视测量细节或做大规模分析的研究。原始数据以整点批次上传,落地 S3 的延迟约在半小时到一两小时之间,取用方式与 CSV 输出格式写在 ASN 观测数据撷取与分析,社区维护的撷取程序也在该页。

以本次演练为例,30 分钟的时间窗要用 measurements 端点:probe_cc=TWtest_name=ndt(或 dash)、since=2026-08-13T06:00:00Zuntil=2026-08-13T08:00:00Z,回传的每一笔都带 probe_asn,再自行归到 24158174219674 三组。所有时间一律使用 UTC,台湾时间需减 8 小时。要判断某个问题该用哪个测项,OONI 测项速查表整理了每个测项测量什么、规格状态,以及台湾是否有数据。台湾的 ASN 覆盖现况见 ASN 自治网络观测数据分析

最常见的误解是把异常(anomaly)当成封锁。OONI 的 anomaly 只代表测试未照预期完成,成因包含审查、网络不稳、ISP 暂时故障,以及测试程序本身的问题,将 anomaly 比率直接视为封锁率会产生假指控。以 tor 测项的实测为例,取 2026-07-12 到 2026-08-12 这 30 天,加拿大 16.3%(母数 14,042)、瑞士 22.1%(母数 3,231)、新西兰 20.1%(母数 562),皆为没有审查的国家。前一段 90 天的 ndtdash 用的是另一个时间窗,复查三国的比率要换成 30 天的参数。中段数值属于噪声,只有比率极端高的少数国家与现实相符。

以上只适用于有做封锁判定的测项。性能测项的 anomaly 目前在后端几乎没有实作,全球近 90 天的 ndt 20 万笔与 dash 19.8 万笔,anomaly 都是 0。判断演练期间是否降速,要直接看吞吐量的数值,不能看 anomaly

授权方面,OONI 发布的测量数据采 CC BY-NC-SA 4.0,禁止商业使用,衍生内容需以相同授权释出。引用数据时要标注来源,将 OONI 数据与其他来源合并产生新的数据档,会让整份成品都受同一授权拘束。

演习细节以行政院公告与各电信运营商公告为准,时间如有调整依官方最新信息。


数据来源:OONI aggregation 与 measurements API(查询条件见上方的数据与前提,测量数据授权 CC BY-NC-SA 4.0)、ASN 名称取自 RIPEstat、M-Lab 的数据处理方式取自 M-Lab 隐私政策。演习相关的官方与媒体来源见下方脚注。