IP、路由与 IPv6
Mac 上的 IPv6 问题
大多数网络会同时为 Mac 分配 IPv4 和 IPv6 地址。如果 IPv6 路径不通,有些连接会等待或失败。
症状
- 有些网站或 API 卡住,其他的却立即载入。
- 某个工具要延迟一会儿或重试几次后才能连上。
- 在一个网络上连接正常,换到另一个网络就不行。
可能的原因
- 路由器通告了 IPv6,但不路由 IPv6。Mac 获得了 IPv6 地址,但经由 IPv6 的流量到达不了互联网。
- 运营商或 VPN 不完全支持 IPv6。有些 VPN 只承载 IPv4,IPv6 流量就会绕过隧道或失败。
- 防火墙阻止 IPv6。路由器或公司防火墙可能阻止 IPv6 流量,而放行 IPv4。
如何检查
找到每个网络端口的设备名称,例如 Wi-Fi 是
en0。networksetup -listallhardwareports显示 Wi-Fi 接口的 IPv6 地址。以
fe80开头的地址仅为链路本地地址。ifconfig en0 inet6显示 Mac 接受的路由器通告。如果出错,说明没有 IPv6 路由器应答。
ipconfig getra en0通过 IPv6 ping 一个公共地址。
ping6 -c 3 2606:4700:4700::1111先仅用 IPv4 请求一个网站,再仅用 IPv6 请求,比较结果。
curl -4 -I https://www.apple.com如果 IPv4 请求成功而 IPv6 请求失败,说明 IPv6 路径不通。
curl -6 -I https://www.apple.com
如何修复
重启路由器,然后再测试。
更新路由器固件,或向运营商咨询你线路上的 IPv6 情况。
测试时,在该服务上关闭 IPv6。
networksetup -setv6off Wi-Fi需要管理员密码。
测试后重新打开 IPv6,使用自动设置。
networksetup -setv6automatic Wi-Fi需要管理员密码。
也可以使用“系统设置”>“网络”> 相应服务 >“详细信息”>“TCP/IP”中的“配置 IPv6”菜单。
如果只有关闭 IPv6 后问题才消失,向网络所有者或运营商报告。
使用 Kilobat
why会分别尝试 IPv4 和 IPv6,并指出哪一个失败。kilobat why api.example.comMCP 工具
diagnose_connection会为智能体返回同样的步骤。参阅“找出某个网站或 API 无法连接的原因”。
常见问题
应该一直关闭 IPv6 吗?
不应该。只在测试时关闭。请网络所有者修复 IPv6,然后再重新打开。
什么是链路本地地址?
以 fe80 开头的地址只在本地链路上有效,无法访问互联网。
参考资料
- networksetup(8),macOS 27.2 自带的 man 手册页
- ipconfig(8),macOS 27.2 自带的 man 手册页
- ping6(8),macOS 27.2 自带的 man 手册页
- curl(1),macOS 27.2 自带的 man 手册页
- Apple 支持:在 Mac 上更改 TCP/IP 设置
参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。