为什么 Android 12、12L、13 预览版设备不再解析本地 DNS?



我已经有这个奇怪的问题好几个星期了:

Android 12,12L,13预览设备(模拟器和物理(不再解析本地DNS。我开始在我的安卓应用程序中注意到这个问题。域名以".local"结尾的任何url或API返回unknownHostException。然后,我甚至尝试在Android设备上使用chrome浏览器打开url(即:mysite.itsys.local(,它会出现以下错误:;DNS_ PROBE_FINISHED_;以及";DNS_ PROBE_ STARTED";。

同样的url在安卓8、9、10、11上运行良好,甚至在2021年12月之前安装了操作系统的一些安卓12设备上也是如此。

我注意到,我在2021年12月之后测试的任何Android 12、12L、13预览版设备都不再解析本地DNS。

在那些最新的Android 12及以上版本中,到底发生了什么,阻止他们加载域名中包含".local"的URL?

看起来实际上恰恰相反:从Android 12开始,Android第一次真正解析。本地域正确:根据RFC6762,它们是为mDNS/zeroconf域解析保留的,必须通过链接本地多播地址224.0.0.251来解析。禁止将此类域名用于非mDNS地址。

如果你想拥有不基于mDNS的本地域名,你必须使用不同的结尾,如.intranet,以避免与mDNS地址发生冲突。

最新更新