ImmortalWrt IPv6 完整配置指南(从 PD 问题到 NAT6)
解决因运营商不提供 IPv6 PD(前缀委派)导致内网设备无法获取公网 IPv6 的问题,通过配置 NAT6(IPv6 网络地址转换)实现内网设备共享路由器 IPv6 上网。
快速关闭 ipv6
- 进入
网络→接口 - 把 wan6接口停止,其他配置不用改
- 点击保存并应用
- 恢复ipv6 将 wan6 启用即可
第一步:诊断你的 IPv6 现状
在动手配置之前,先根据你当前看到的 WAN 口信息,判断问题到底出在哪。
一、整体看下来是正常的
如果你在 WAN6 接口看到类似下面的信息:
协议: DHCPv6 客户端
地址: 240e:xxx:b113/64
网关: fe80::123c:59ff:fec8:61aa
DNS: 240e:xxx:6
这说明:
- 获取到地址:
240e开头是中国电信的 IPv6 地址段,运营商分配正常。 - 拿到网关和 DNS:
fe80::开头的网关是本地链路地址,这没问题,很多运营商就是这样分配的。DNS 也是电信的下发地址。 - 状态显示活跃:已连接时间在增长,说明 IPv6 连接是持续生效的。
单纯看这份信息,IPv6 是可以用的——路由器自己能通过它访问公网 IPv6 资源。
二、一个值得注意的点:前缀长度 /64
截图中地址是 /64,意味着你收到的只是一个单个 IPv6 地址,并没有附带 PD 前缀。
| 影响对象 | 结论 |
|---|---|
| 对这台路由器自身 | ✅ 完全没问题,路由器自己能上网 |
| 对路由器下面的设备(手机、电脑等) | ⚠️ 有可能无法获得公网 IPv6 地址,只能走 NAT 或只有 IPv4 |
因为要给内网设备分配 IPv6,路由器通常需要运营商下发一个 PD(Prefix Delegation)前缀(一般是 /60 或 /56)。如果只拿到 /64,通常说明 PD 没下来,内网设备分不到公网 IPv6。
三、如何确认内网设备能否用 IPv6?
在电脑或手机上访问 test-ipv6.com:
| 测试结果 | 结论 |
|---|---|
| 显示 IPv6 正常 | ✅ 说明 PD 其实拿到了(可能只是截图没展示完整),你不需要 NAT6 |
| 显示没有 IPv6 | ❌ 那就是上面说的 PD 没拿到的问题,请继续往下走 NAT6 配置 |
四、如果确实没有 PD 前缀,怎么办?
大概有几种可能的原因和对应的解决思路:
| 可能原因 | 解决方案 |
|---|---|
| 运营商没给(某些旧光猫或部分地区默认不开 PD) | 尝试将光猫改为桥接模式,让路由器直接拨号 |
| 路由器 IPv6 设置不对 | 检查 WAN 口的 IPv6 分配长度是否选了 /60 或 /56,而不是“仅地址” |
| 固件不兼容(部分老版本 OpenWrt 类固件对 PD 获取不稳定) | 尝试重启路由器,或更新/更换固件版本 |
如果以上方法都尝试过后,内网设备依然没有 IPv6,那么请继续按照本指南的后续步骤配置 NAT6。
1. 判断问题:确认是否存在 PD 缺失
1.1 检查 WAN 口 IPv6 情况
- 路径:网络 → 接口 → WAN6(或类似名称,如
wan_6) - 关键判断:如果没有显示“委派前缀”或显示前缀长度为
/0,说明 PD 未获取
1.2 影响
- 路由器自身:IPv6 正常 ✅
- 内网设备:无法获得公网 IPv6 ❌
1.3 解决路径选择
| 方案 | 适用场景 | 推荐度 |
|---|---|---|
| 修复 PD | 光猫桥接、路由器拨号 | ⭐⭐⭐(首选) |
| NAT6(本指南) | 上级网络无法调整(如公司网络、特定光猫) | ⭐⭐⭐⭐(稳妥兜底) |
2. 准备工作
2.1 确认路由器自身 IPv6 连通性
# SSH 到路由器执行
ping -6 2400:3200::1 # 百度 IPv6 DNS若能 ping 通,则基础 OK。
2.2 修改 WAN6 高级设置(避免默认路由丢失)
- 路径:网络 → 接口 → WAN6 → 编辑 → 高级设置
- 操作:取消勾选“IPv6 源路由”
3. 配置 LAN 口 IPv6 地址(ULA)
3.1 设置内网 IPv6 前缀
- 路径:网络 → 接口 → LAN → 编辑 → 常规设置
找到“IPv6 地址”:填入自定义 ULA 地址,格式如下:
fd91:417b:3eff::1/64说明:
fd开头是唯一本地地址(ULA),后面 6 位可随意组合(如fd12:3456:789a),最后必须带/64。
3.2 禁止从 WAN 委派前缀
路径:网络 → 接口 → LAN → 编辑 → 高级设置
- 委托 IPv6 前缀:❌ 禁用
- IPv6 分配长度:已禁用
4. 配置 LAN 口的 DHCPv6 和路由通告(RA)
- 路径:网络 → 接口 → LAN → 编辑 → DHCP 服务器 → IPv6 设置
| 选项 | 设置值 |
|---|---|
| 路由通告服务(RA) | 服务器模式 |
| DHCPv6 服务 | 服务器模式 |
| NDP 代理 | 已禁用 |
4.1 RA 高级选项(部分版本在独立标签页)
- 默认路由器:强制的
- 启用 SLAAC:✅ 勾选
5. 启用 NAT6(IPv6 伪装)
- 路径:网络 → 防火墙 → 区域设置 → 找到 WAN 区域 → 编辑
5.1 常规设置
- MSS 钳制:✅ 勾选
5.2 高级设置
- IP 动态伪装:✅ 勾选(这是 NAT6 的核心开关)
说明:此操作会添加 MASQUERADE 规则到 IPv6 的 POSTROUTING 链,实现内网 IPv6 地址到 WAN 口 IPv6 地址的转换。6. 可选增强:FullCone NAT6
适用于 P2P 下载(BT/PT)、游戏主机等场景。
- 路径:网络 → 防火墙 → 区域设置 → LAN → 编辑 → 高级设置
- 启用 FullCone NAT6:✅ 勾选(若选项存在)
7. 生效与验证
7.1 应用配置
- 点击各页面 保存并应用
- 建议 重启路由器 确保所有服务全新初始化
7.2 内网设备验证
方式一:查看网卡地址
- Windows:
ipconfig→ 查找fd91:417b:3eff:开头的地址 - Linux:
ip a→ 查找inet6 fd91:... - Android/iOS:Wi-Fi 详情 → IPv6 地址
方式二:访问测试网站
浏览器打开 test-ipv6.com
- 成功标志:页面显示“IPv6 支持”且给出您的 IPv6 地址
- 注意:此时显示的地址应是 WAN 口的
240e:...地址(NAT 转换后的效果)
方式三:命令行测试
# 内网设备执行
ping -6 2400:3200::1若能 ping 通,则 NAT6 成功。
8. 故障排查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
内网设备没有 fd 开头的地址 | RA/DHCPv6 未生效 | 检查 第 4 步,RA 服务是否为“服务器模式”;重启路由器 |
有 fd 地址但 ping 不通外网 | NAT6 未生效 | 检查 第 5 步“IPv6 伪装”是否勾选;防火墙重启 /etc/init.d/firewall restart |
| IPv4 上网变慢或中断 | MSS 钳制未配置 | 在 WAN 防火墙区域勾选“MSS 钳制” |
| 重启后配置丢失 | 未保存或固件 Bug | 执行 uci commit;升级到最新 ImmortalWrt 稳定版 |
9. 补充说明
9.1 为什么不用 NPTv6?
NPTv6(IPv6 网络前缀转换)需要 /48 或更大前缀,本场景不具备条件。NAT6 是唯一可行方案。
9.2 性能影响
NAT6 会损失少量转发性能(通常 < 5%),对于家庭/小型网络可忽略不计。
9.3 与 IPv4 NAT 的区别
- IPv6 NAT 并非标准推荐做法,但在此类“上级只给一个 /64”的环境下是合理且广泛采用的权宜方案。
10. 相关命令速查(SSH 用)
# 查看 IPv6 地址
ip -6 addr show
# 查看 IPv6 路由
ip -6 route show
# 查看防火墙 NAT6 规则
iptables -t nat -L -v -n
ip6tables -t nat -L -v -n # 应看到 MASQUERADE 规则
# 重启防火墙
/etc/init.d/firewall restart
# 重启网络服务
/etc/init.d/network restartPD(Prefix Delegation)模式才是标准的 IPv6 上网方式:运营商直接给路由器分配一个 /56 或 /60 的前缀,路由器再把这个前缀分给下游设备,每个设备都拿到公网 IPv6 地址,不需要 NAT。
如果你的光猫支持 PD,想从“NAT6 模式”切换回“PD 模式”,按下面的步骤改:
步骤 1:删除 LAN 口的 ULA 地址
- 路径:网络 → 接口 → LAN → 编辑 → 常规设置
- IPv6 地址里的 fd91:417b:3eff::1/64 清空(或删除)
步骤 2:开启 WAN 口的 PD 委派(核心)
路径:网络 → 接口 → WAN → 编辑 → 高级设置
- 委托 IPv6 前缀:✅ 勾选
- IPv6 分配长度:64 或留空
步骤 3:确认 WAN6 接口存在
- 没有 WAN6 → 添加新接口(名称 WAN6,协议 DHCPv6 客户端,设备 @wan)
- 不要勾选“委托 IPv6 前缀” (注意 wan和wan6 不一样)
步骤 4:修改 LAN 口的 IPv6 分配方式
路径:网络 → 接口 → LAN → DHCP 服务器 → IPv6 设置
- RA 服务:服务器模式
- DHCPv6 服务:混合模式(不行再改服务器模式)
- NDP 代理:已禁用
步骤 5:关闭 NAT6 伪装
路径:网络 → 防火墙 → 区域设置 → WAN → 编辑 → 高级设置
- IP 动态伪装:❌ 取消勾选