Hacker News 中文摘要

RSS订阅

macOS 26 破坏自定义 DNS 设置,包括 .internal -- macOS 26 breaks custom DNS settings including .internal

文章摘要

macOS 26版本存在一个bug,导致系统无法正确解析/etc/resolver/目录下配置的自定义顶级域名(TLD)的DNS记录,影响了补充DNS功能的正常使用。

文章总结

macOS 26 系统破坏自定义顶级域名的 /etc/resolver/ 辅助 DNS 功能

问题报告:macOS 26 系统更新后,/etc/resolver/ 目录下配置的辅助 DNS 解析功能对自定义顶级域名(TLD)失效。

问题概述

  • 影响范围:macOS 26.3.1 版本(Darwin 25.3.0)
  • 问题表现:对于非 IANA 根域注册的自定义 TLD(如 .internal.test 等),mDNSResponder 会将其视为 mDNS(组播 DNS)请求,而不再遵循 /etc/resolver/ 中配置的 DNS 服务器。
  • 历史表现:此功能在 macOS 25 及更早版本中工作正常。

技术背景

macOS 长期支持通过 /etc/resolver/ 目录下的文件配置针对特定域名的 DNS 解析。例如,/etc/resolver/internal 文件中配置 nameserver 127.0.0.1 可将所有 *.internal 域名查询指向本地 DNS 服务器。此机制在 man 5 resolver 中有文档说明,并被广泛用于本地开发环境(如 dnsmasq、Docker 等工具)。

复现步骤

  1. 配置 dnsmasq 解析自定义域名(如 probe.example-private)。
  2. /etc/resolver/ 中创建对应解析文件。
  3. 刷新 DNS 缓存后,发现 pingcurl 等工具无法解析该域名。
  4. 通过 tcpdump 抓包确认请求未到达本地 DNS 服务器。

影响范围

受影响的 TLD 包括: - .internal(IETF 草案专用域名) - .test(RFC 6761 明确保留用于测试) - .home.arpa(RFC 8375 保留) - 其他非 IANA 注册的私有域名(如 .lan

值得注意的是,.test 域名本应通过常规 DNS 解析,但 macOS 26 错误地将其视为 mDNS 专用。

临时解决方案

目前唯一可靠的解决方法是直接修改 /etc/hosts 文件,但这对动态环境(如 Docker)不友好。

影响群体

此问题会影响以下场景: - 使用 dnsmasq 等工具进行本地开发的开发者 - Docker 容器名称解析 - Kubernetes 本地开发工具(如 minikube) - 依赖自定义 TLD 的 VPN 工具

环境信息

  • 系统版本:macOS 26.3.1(Apple Silicon)
  • 相关软件:Homebrew 安装的 dnsmasq
  • 验证工具dig 可工作,但系统工具(如 ping)失败

参考资料

  • man 5 resolver
  • RFC 6761(特殊用途域名)
  • RFC 8375(home.arpa 域名)

(注:原文中关于 GitHub 界面操作和用户评论的部分已省略,仅保留技术内容核心)

评论总结

以下是评论内容的总结:

1. 对macOS的批评

  • 认为macOS存在技术缺陷,如端口占用、密钥删除问题,整体显得"业余"
    "Port :8080 is occupied... The whole macOS thing is amateur" (Congee)
    "unable to delete a private key in Keychain Access" (Congee)

  • 指出系统更新破坏了原有功能(如DNS配置、Safari cookie删除)
    "broke removing Safari cookies on a per website basis" (Razengan)
    "they finally killed that feature off" (binaryturtle)

2. 用户转向其他系统

  • 部分用户因系统问题转向Linux/FreeBSD
    "Papercuts like this are why I moved away from macOS" (mrbuttons454)
    "I want their silicon, but I will never use their (arguably terrible) operating system" (himata4113)

3. 技术解决方案讨论

  • 提供DNS配置的替代方案(scutil/dnsmasq/PiHole)
    "use scutil directly... stored in some binary plist" (binaryturtle)
    "Solved this... with New-UnboundInterface.sh" (justsomehnguy)

  • 推荐PiHole进行DNS拦截
    "love my PiHole hardware... intercept hard-coded-IP DNS" (ProllyInfamous)

4. 对macOS设计的肯定

  • 有用户认为macOS UX设计仍具优势
    "MacOS felt relatively polished... Gnome themes are a re-impl of MacOS" (ramon156)

5. 其他观点

  • 对LLM生成错误报告的担忧
    "don't love the use of LLMs to write these bug reports" (mrbuttons454)
  • 指出.localhost无需额外配置即可使用
    *"
    .localhost works out of the box" (JimDabell)*

(注:原文评论均无评分数据,故未体现认可度指标)