错误信息

Mac 上提示“未能找到使用指定主机名的服务器。”(A server with the specified hostname could not be found.)

这是 macOS 中错误 -1003 的提示文本。Mac 无法把服务器名称转换成地址:DNS 失败了,或者这个名称不存在。

适用于:所有当前 macOS 版本。文字已在 macOS 27.2 上核对。核查日期:2026年10月29日

症状

  • App 显示“未能找到使用指定主机名的服务器。”
  • App 可能会显示 NSURLErrorDomain 和 -1003。
  • 对于同一个名称,Safari 浏览器显示“Safari 浏览器找不到服务器”。

可能的原因

  • 没有互联网连接。没有连接,任何名称都无法解析。
  • DNS 问题。DNS 服务器没有响应,或者没有该名称的结果。
  • VPN 使用自己的 DNS。公司网络内部的名称只能通过公司的 DNS 解析。请参阅连接 VPN 后内部名称无法解析。
  • 名称不存在。输入有误,或服务器已被移除。
  • DNS 过滤器。有些 DNS 服务和过滤器会把被拦截的名称回答为不存在。

如何检查

  1. 通过 macOS 解析器查询该名称。没有地址行即表示查询失败。

    dscacheutil -q host -a name example.com
  2. 直接询问公共 DNS 服务器。如果这里有结果而上一步没有,问题出在 DNS 设置上。

    dig +short example.com @1.1.1.1
  3. 显示 Mac 当前使用的 DNS 服务器。

    scutil --dns
  4. ping 一个互联网上的地址。这项测试不会用到 DNS。

    ping -c 5 1.1.1.1

如何修复

  1. 如果 ping 正常但查询失败,请修复 DNS。请参阅Mac 上 DNS 无法解析。

  2. 刷新 DNS 缓存,然后再试一次。请参阅在 Mac 上刷新 DNS 缓存。

  3. 对于公司内部名称,请先连接 VPN。

  4. 如果是 DNS 过滤器阻止了该名称,请在过滤器中允许它。

使用 Kilobat

  1. Kilobat 的连接诊断会逐层测试该名称:网络、代理、DNS、规则、IPv4、IPv6、TLS 和服务器,并指出失败的那一层。

    kilobat why example.com
  2. 查看 DNS 服务器,或设置一个公共 DNS 服务做测试。更改需要管理员密码。

    kilobat dns
  3. Kilobat 的这些检查都是免费的。AI 智能体可以通过 MCP 用 diagnose_connection 和 diagnose_network 运行它们。请参阅找出某个网站或 API 连不上的原因。

常见问题

NSURLErrorDomain -1003 是什么?

这是 Apple URL Loading System 中的 cannotFindHost 错误。Apple 将其描述为无法解析的主机名。

参考资料

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。