应将“配置 ipv6”设为“自动”以启用slaac,使mac通过路由器通告(ra)自动生成全局单播地址和默认路由;若仅获fe80::地址,则需排查路由器ra是否开启且managed flag=0、other flag=1。

macOS 以太网接口配置 IPv6 地址,核心是启用并设为“自动”,让系统通过路由器通告(RA)完成无状态自动配置(SLAAC),无需手动填地址。只要上游路由器发了合法 RA,Mac 就会自动生成全局单播地址和默认路由。
在系统设置中启用 IPv6 自动配置
这是最基础也最关键的一步。macOS 默认可能未启用 IPv6,或仅启用了本地链路地址(fe80::/10),无法访问公网。
- 点击左上角苹果图标 → “系统设置”(Ventura 及更新系统)或“系统偏好设置”(Monterey 及更早)
- 进入“网络”,左侧选中已连接的“以太网”服务
- 点右侧“详细信息…”(Ventura+)或“高级…”(Monterey-),再切换到“TCP/IP”标签页
- 将“配置 IPv6”下拉菜单设为“自动”(不是“仅本地链接”,也不是“关闭”)
- 确认后点“完成”或“好”,系统会立即尝试接收 RA 并生成地址
验证是否成功获取全局 IPv6 地址
设为“自动”不等于一定成功。需检查是否真拿到了带全球前缀的地址(非 fe80:: 开头),以及是否有 IPv6 默认路由。
- 打开“终端”,输入:ipconfig getifaddr en0(若以太网接口是 en0;可用 ifconfig | grep "en" 确认实际接口名)
- 再输入:netstat -rn -f inet6 | grep 'default',看是否有指向路由器的默认路由
- 正常情况应看到类似 2001:da8:xxx::/64 的全局地址,且 default 路由指向 fe80::xxx%en0 或某全局地址
- 若只看到 fe80:: 开头的地址,说明 RA 未收到或前缀无效,需排查路由器端
检查并确保路由器通告(RA)正常
SLAAC 完全依赖路由器周期性发送的 RA 报文。Mac 不主动请求,只被动监听。
- 在终端运行:sudo ipconfig getv6packet en0
- 若有输出,重点看是否含 “Prefix Information Option”、“Valid Lifetime” > 0、以及非零的前缀(如 2001:da8::/64)
- 若提示 “no reply” 或无 Prefix 字段,说明路由器未开启 RA,或启用了 Managed Flag=1(这会抑制 SLAAC,转向 DHCPv6)
- 家用路由器需在 IPv6 设置中明确启用“路由器通告”、“SLAAC 模式”或“原生 IPv6”,并确保 Other Config Flag = 1、Managed Flag = 0
可选:添加 IPv6 DNS 提升可用性
即使地址和路由正常,若 DNS 不支持 IPv6,仍可能无法解析域名。建议补充公共 IPv6 DNS。
- 仍在“TCP/IP”设置页,切换到“DNS”标签
- 点击左下角“+”号,添加 IPv6 DNS 地址,例如:
2001:4860:4860::8888(Google)
2001:470:20::2(Hurricane Electric) - 保持 DNS 列表中 IPv4 DNS 仍有效,双栈环境建议两者共存
整个过程不涉及命令行修改内核参数或编辑配置文件,纯图形界面操作。关键在于“自动”选项与上游 RA 的配合——Mac 端设对只是前提,路由器端配准才是落地保障。











