错误信息
Mac 上提示“Safari 浏览器无法连接服务器”
Safari 找到了网站的地址,但与服务器的连接没有建立。DNS 正常,失败的是服务器或通往它的路径。
症状
- Safari 提示:“Safari can’t open the page … because Safari can’t connect to the server …”(Safari 无法打开网页……因为 Safari 无法连接服务器……)。
- 其他网站可以打开。
- 地址是本地服务器,例如
localhost:3000,而该服务器没有运行。
可能的原因
- 服务器宕机或拒绝连接。端口上没有程序在监听,或服务器拒绝了连接。
- 本地服务器没有运行。对于
localhost地址,必须运行你自己的服务器。请参阅Mac 上的端口已被占用。 - 防火墙或过滤器。防火墙、内容过滤器或公司网络可能会封锁该端口。
- VPN 或代理。流量经过的 VPN 或代理无法连接到服务器。
- IPv6 路径不通。网站有 IPv6 地址,但当前网络上的 IPv6 无法使用。
如何检查
在同一网络的另一台设备上打开同一地址。如果也失败,问题出在网络或服务器上。
在“终端”中测试该端口,超时设为 5 秒。
nc -vz -G 5 example.com 443请求该页面,并显示连接的每一步。
curl -v -o /dev/null https://example.com先只用 IPv4 尝试,再只用 IPv6 尝试。如果只有 IPv6 失败,请阅读Mac 上的 IPv6 问题。
curl -4 -I https://example.com curl -6 -I https://example.com对于本地地址,查看是否有服务器在监听该端口。
lsof -nP -iTCP:3000 -sTCP:LISTEN
如何修复
几分钟后重新载入页面。繁忙的服务器可能会恢复。
对于本地服务器,先启动它,再使用它输出的端口。
如果打开了 VPN、代理或安全 App,请暂时关闭它进行测试,测试后再重新打开。
如果只有 IPv6 失败,修复 IPv6 或向你的网络服务商报告。请参阅Mac 上的 IPv6 问题。
如果是公司网络屏蔽了该网站,请询问管理员。
使用 Kilobat
Kilobat 的连接诊断会逐层测试该网站:网络、代理、DNS、规则、IPv4、IPv6、TLS 和服务器,并指出失败的那一层。
kilobat why https://example.com显示某个 URL 的 DNS、连接、TLS 和首字节时间。
kilobat http-check https://example.comKilobat 的这些检查都是免费的。AI 智能体可以通过 MCP 用
diagnose_connection和diagnose_network运行它们。请参阅找出某个网站或 API 连不上的原因。
常见问题
为什么 Safari 找到了服务器却连不上?
找到服务器靠的是 DNS,连接是另外一步。这里 DNS 成功了,连接失败了。
参考资料
- Safari.framework 中的错误文本,macOS 27.2(Localizable.strings)
- Apple 开发者:URLError.Code cannotConnectToHost (-1004)
- Apple 支持:如果 Safari 浏览器在 Mac 上无法按预期工作
- nc(1)、curl(1) 和 lsof(8),macOS 27.2 自带的 man 手册页
参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。