DNSFS:用DNS做云存储?这玩法看完后背发凉

DNSFS:用DNS做云存储?这玩法看完后背发凉

七月 07, 2026 dns hacking network-security distributed-systems infrastructure protocol-hacking

DNSFS:最诡异的云存储黑科技

咱们先玩个思想实验。想象一下,你的文件不存在 AWS S3 里,也不在什么花里胡哨的分布式数据库里,而是藏在全球几百万台服务器的 DNS 缓存里。你的数据就这样飘在地球上空,散落在你根本不认识、不拥有的机器里。

听起来是不是像赛博朋克小说里的情节?

还真有人把它造出来了。

一切从 DNS TTL 的发现说起

说正经的,先聊聊大多数开发者压根不在意的 DNS TTL。你查一个域名,解析器会把这个结果缓存一段时间再去检查。大多数人以为就几分钟,顶多几小时。

但问题是:有些解析器,只要你"客气点",它能乖乖缓存整整一周。

这个发现引出了一个有意思的问题:既然 DNS 缓存能存这么久,我们能不能故意把文件塞进去?不是域名解析,就是实实在在的数据?

答案是:居然还真能。

DNSFS:藏在眼皮底下的文件存储

DNSFS 借鉴了之前一个叫 PingFS 的骚操作——那玩意儿把数据藏在 ICMP ping 数据包里。PingFS 的毛病是啥?你得不停 ping 来 ping 去,传输一停,数据就没了。

DNSFS 把这个概念往前推进了一大截。因为 DNS 解析器会缓存响应,只要你把一段数据塞进解析器的缓存,不用你反复去查,它自己就帮你留着。

想一下这意味着啥。你基本上是在白嫖别人的基础设施——还是人家完全不知情的情况下——当成一个分布式、冗余的文件存储系统来用。

技术上怎么实现的

这个实现方案吧,怎么说呢,聪明是聪明,但也让人后背发凉。

要让这玩意儿跑起来,你得有一堆开放的 DNS 解析器——就是那种对任何域名都会响应、而不是只处理自己管辖范围的服务器。按理说,这种服务器应该从公网上隔离掉,因为它们容易被用来做 DDoS 反射攻击。但现实是:几百万台设备出厂时 DNS 配置就是错的,谁都能访问到。

原理是这样的:把文件拆成小块,编码成 DNS 查询请求,撒到互联网上。收到并缓存了这些查询的解析器,就相当于帮你存了一部分文件。想取回数据?重新查询这些解析器,把碎片拼回去就行了。

这系统最妙(也最恐怖)的地方在于:数据就那么躺在缓存里,直到 TTL 过期——根本不需要保持连接。

在互联网上扫开放解析器

接下来这part,既让人佩服,又让人不安。

搞 DNSFS 首先要满世界找开放解析器。就是扫描几十亿个 IP 地址,筛出哪些愿意回答任意域名的查询。

有个开发者用了 masscan 配合 BPF 规则,高效地只挑有用的解析器,把权威服务器之类没用的噪音过滤掉。最后结果:全球有将近 400 万个开放 DNS 解析器。

地理分布也挺有意思。中国排第一,超过 140 万个。其次是美国、韩国、俄罗斯、巴西。但如果按网民数量标准化一下,圣基茨和尼维斯这种小国就离谱了——大约每 51 个人就有一个解析器。

为啥这事值得关注(不止是炫技)

先说清楚:DNSFS 绝对不是拿来存生产数据的方案。慢、不靠谱、没经过审计、安全性一塌糊涂。满世界扫描找开放解析器,在伦理上也有问题——consent 啊、网络边界啊这些。

但这不是重点。

DNSFS 代表的是那种天马行空、突破边界的思维方式,它推动了我们对网络系统的认知。它让人们意识到互联网上有多少配置错误的设备,引发了关于安全加固的重要讨论。它证明了分布式系统中缓存数据惊人的持久性。它还展示了看起来死板的协议,居然能被这么玩。

这也是个提醒:互联网比咱们以为的乱多了。那几百万个开放解析器,运行环境可能是家用路由器、物联网设备、企业设备,什么都有。大多数管理员压根不知道自己 DNS 服务能从外网访问。

给开发者的启示

DNSFS 短期内存不了你的业务数据,但它有几个教训:

协议只是起点。 DNS 设计出来是做域名解析的。但这不代表它只能干这个。

安全假设要重视。 开放解析器的存在就是因为有人配错了。定期检查自己基础设施的对外暴露情况。

限制往往催生创新。 最牛的黑客往往来自在意外限制中找突破口。DNSFS 诞生于一句"要是拿缓存当存储呢"。

互联网比多数人想象的更奇怪、更灵活。有时候最好玩的系统,偏偏是那些看起来根本不该工作的。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN