配置 dnsmasq 以翻译 iPhone 的本地名称

配置 dnsmasq 以翻译 iPhone 的本地名称

我发现 iPhone 5S 无法通过名称解析本地网络主机的名称。仅当向主机名添加后缀时才可能.local,例如,而不是询问(就像在 Linux 主机上一样):

https://local_hostname

必须使用:

https://local_hostname.local

可以通过在 iPhone 上dnsmasq使用来处理吗?https://local_hostname

dnsmasq版本是2.76

答案1

或许。这完全取决于 iOS 是否支持 DHCP 选项domain-name

配置 dnsmasq 以使用域名。我正在考虑类似以下链接的内容:https://wiki.archlinux.org/index.php/dnsmasq#Adding_a_custom_domain

除非,请使用域名.test开头。我不会相信 Arch wiki 认为一周中的这一天可以免费使用的任何随机域。 如果您违反标准,它们可能会带来极其难以调试的问题。您应该能够使用.testfine 进行测试。您可能决定长期使用不同的东西。我在下面列出了一些其他建议。

解释:

我问如何不在最后输入域,如果我配置 dnsmasq 开始使用域,这怎么可能工作?

DHCP 消息中有一个选项domain-search,默认为 中设置的单个域domain-name。如果客户端的 DNS 解析器无法正常找到名称,则应该尝试依次附加每个“搜索域”。因此,我们的想法是配置 dnsmasq,以便将所有本地名称放置在该域中。

如果您想像这样使用它,您可能对域的外观没有偏好。你只需要确保它不与任何冲突真实的域,现在或将来:-)。

显然.test是可用的,因为它是为可能想要设置这样的系统的开发人员保留的。这可能不是理想的...通过类似的论点,人们可能会使用它在自己的笔记本电脑内进行测试,然后在连接到您的网络时无法访问本地域名。

如果您出于某种原因不喜欢该.test域名,您可以注册自己的域名。免费子域名(但在用于某些网络浏览器安全的公共后缀列表中注册)目前可从DuckDns.org。或者通过使用.test从足够大的单词列表中随机选择的子域来降低冲突概率:

好吧,但是那有什么意义呢,如果我不想输入域名那我为什么要添加一个呢?

这个功能似乎被最近的 iOS 升级破坏了

我仍然可以通过ip地址浏览。通过本地网络名称浏览的功能是否因最近的 iOS 升级而中断,或者我的设置有问题?

--2013 年 12 月 14 日

我的解释是苹果保留了“单标签”名称;他们不会向 DNS 服务器询问单标签名称的地址。因此需要使用域名和搜索域。另一个执行此操作的软件示例:

https://www.freedesktop.org/software/systemd/man/systemd-resolved.html

使用 LLMNR 协议将单标签名称路由到能够进行 IP 多播的所有本地接口。 IPv4 地址的查找仅通过 IPv4 上的 LLMNR 发送,IPv6 地址的查找仅通过 IPv6 上的 LLMNR 发送。对本地配置的主机名和“网关”主机名的查找永远不会路由到 LLMNR。

这符合信息性的 RFC 4795、“链路本地多播名称解析 (LLMNR)”。

  1. 使用模型

默认情况下,LLMNR 发送方应该仅发送单标签名称的 LLMNR 查询。支持 DNS 和 LLMNR 的存根解析器应避免发送单标签名称的 DNS 查询,以减少不必要的 DNS 查询。

相关内容