IP地址就是一串数字,域名是字母组合。人很难记住一长串数字,但记字母会轻松很多,DNS干的就是把域名翻译成IP地址这件事,整个逻辑理解起来很直观。
手机号同样是一串数字。你很难背下朋友的手机号,但能记住对方名字,手机通讯录本质就是做名字到号码的映射。不过通讯录只存在你自己手机本地,不是全网通用的。换手机的时候,通讯录数据得手动导入;手机一旦丢失,里面存的号码也会跟着找不到。
那为什么没有一套全球统一的系统,直接把“张三”这类人名翻译成对应的手机号?从技术层面实现起来并不难,核心问题是通信体系从一开始就不是按照这个思路设计的。

IP地址和手机号存在根本性差别。IP地址分配给设备,手机号分配给人。一台设备可以更换IP,一个人也可以更换手机号。更关键的一点,IP地址总量有限,分配采用分层模式。IANA先划分地址块给到各区域互联网注册机构,区域机构再下发给ISP,最后由ISP分配给普通用户。这种分层架构天然适合搭建解析系统,每一层都清楚下一层的位置。
手机号的分配同样分层。国际电信联盟负责国家码,各国通信管理局管控号段,运营商再分配具体号码。但这套分层结构解决的是呼叫路由,并不是名字解析。当你拨打一个号码,运营商的信令系统会判断该把通话转发到哪个交换机、哪座基站。这套早期叫七号信令,后续迭代成Diameter,再到5G核心网内各类网络功能。它们本质上就是手机号版本的DNS,只是不叫这个名称。
差别在于,这套系统只在运营商内部运行,不会对外开放。你没法仅凭一个手机号,公开查询这个号码当前绑定设备的位置。运营商的HLR,也就是归属位置寄存器,里面保存着这些信息,但只对运营商自有网络开放。第三方想要查询,只能调用运营商提供的API,往往还要付费、获得授权,同时满足各类合规约束。
DNS完全不一样。它公开、分层、具备去中心化特性。任何人查询任意域名,递归服务器都会从根服务器开始逐级查询拿到结果。这套系统能稳定运行,根源在于域名本身不涉及隐私和计费。就算查到某个域名对应的IP,也不代表你能访问网站内容或是控制服务器。但如果拿到手机号绑定设备的位置信息,就能定位、追踪,甚至实施监听,两者信息敏感程度完全不在一个级别。
还有一个很现实的原因。绝大多数场景下手机号是直接交给人使用的。打电话的时候,你输入的是号码,不是人名。名字转号码这件事,本地通讯录就能完成。你不需要一个全球系统帮你查找张三的手机号,对方直接把号码发给你,你存进通讯录就可以。万一存错号码,拨过去发现不是本人,直接修改就行,纠错成本很低。
IP地址的场景刚好相反。访问网站时,你输入域名,不是IP。浏览器不会单独维护一份网站IP通讯录,因为我们访问的网站数量太多,而且IP会变动。网站服务器今天在北京,明天可能迁移到上海。本地保存旧IP的话,网站就打不开。DNS解决的就是IP动态变化的问题,它不是单纯帮你记名字,而是持续同步最新的地址信息。
手机号也会更换,但更换频率低很多,普通人一般几年才换一次号码。换号之后,大多会主动通知通讯录里的亲友,或是发社交动态告知。这种信息传递依靠社交关系,不需要专门的技术系统兜底。
如果强行搭建一套公开的手机号解析系统,首先碰到的就是隐私难题。查询号码,系统该返回什么内容?返回机主姓名,相当于所有人身份信息公开;返回实时位置,风险就更严重。返回运营商名称,这类信息现在已经能通过少量公开渠道查到,但也仅此而已。
第二个难题是计费。手机号绑定话费、流量、各类套餐。任何号码相关查询,都有可能对接计费系统接口。公开的DNS式系统不能随意调取这类数据,每一次查询都可能产生费用,还需要用户授权。
第三个是安全隐患。DNS本身就存在缓存投毒、劫持、DDoS攻击这类风险。如果手机号也搭建公开解析系统,攻击面会大幅扩大。一旦解析结果被篡改,来电有可能直接被转发到诈骗团伙的交换机。
所以手机号没有域名解析服务,并不是技术实现不了,而是这套体系从设计之初就没有这个需求。七号信令、Diameter已经在运营商内部实现了类似解析的能力,只是不对外提供。本地通讯录完成名字到号码的映射,完全够用。互联网之所以需要公开、动态、去中心化的DNS解析系统,是因为IP与域名的对应关系复杂、变动频繁,覆盖范围极广,手机号不存在这种需求。