伪造的 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
为真的但浏览器无法访问外部网站。对此有什么想法吗?