Firefox 无法访问具有两个以上标签的 mdns .local 名称(本地虚假子域名)

Firefox 无法访问具有两个以上标签的 mdns .local 名称(本地虚假子域名)

伪造的 MDNS 子域名可aaa.mypc.local在任何基于 Chrome 的浏览器上使用,但不能在 Firefox 上使用。Firefox 可以访问hostname.local额外的 .local 名称myservice.local,但不能超过两个标签名称(用点分隔,在 DNS 世界中表示子域名)。

为了促进一些本地 Web 开发,我最近配置了我的 Linux 机器(Ubuntu 22.04),通过 Python 包广播一些额外的 .local 名称,mdns-publisher如下所述在家庭网络中使用 MDNS 别名。为什么不修改/etc/hosts?因为使用这种方法,我可以从本地网络上的任何计算机访问 Web 服务器,而不必修改每台计算机上的 /etc/hosts,因为如果 IP 更改或名称更改或添加新名称,修改 /etc/hosts 会很麻烦。我也不想配置合适的 DNS 服务器。

它可以工作,经过一些配置后,我就可以通过额外的 .local 名称访问我的电脑,如下所示:

ping mypc.local # original hostname.local name
ping website1.mypc.local # fake subdomain for hostname.local
ping website2.mypc.local # also fake subdomain for hostname.local
ping someservice.local # extra unrelated name

客户端,我必须创建一个/etc/mdns.allow包含

.local.
.local

因为否则,超过两个标签名称将被拒绝,如解释的那样这里

如果请求包含两个以上的标签,则会被拒绝。例如:foo.bar.local 被拒绝。这是双标签限制启发式方法。

我也做了/etc/nsswitch.conf这样的修改(添加“mdns4”)以使其能够使用额外的名称正常工作:

hosts:          files mdns4_minimal mdns4 [NOTFOUND=return] dns

太好了,我可以通过请求标头访问将处理多个网站的本地网络服务器。

我尝试将 Firefox 的选项设置network.dns.native-is-localhost真的但浏览器无法访问外部网站。对此有什么想法吗?

相关内容