配置 IPv6 NAT66 访问
此前的博客里,我主要写了 IPv4 环境下的校园网配置。这篇文章补充一下我现在正在使用的 IPv6 方案:在校园网不给路由器下发 IPv6 PD 的情况下,通过 NAT66 让下级设备正常访问 IPv6 外网。
本文默认你已经完成了 IPv4 校园网接入,且 OpenWrt 可以正常联网。
devices
首先检查此前创建的虚拟接口或物理接口是否开启了 IPv6。
图形化页面可以在 网络 -> 接口 -> 设备 -> eth0(或 eth1、eth2 等实际设备)中查看。

在 shell 环境下也可以执行:
1 | |
你会看到类似下面的内容:
1 | |
如果对应设备没有 ipv6='1',请将其打开,否则后面的 IPv6 配置可能不会生效。
interfaces
wan
如果你的 wan6 已经能够正常获取 IPv6 地址,这一节可以直接跳过。
先检查 网络 -> 接口 下是否已经存在 wan6 或类似用途的接口;如果没有,就新建一个。
创建时建议这样填写:
- 名称:建议命名为
wan6、wanb6这类格式,后续更容易辨认 - 协议:
DHCPv6 客户端 - 设备:选择与对应
wan相同的设备;如果有多个 WAN,就选与该 WAN 对应的 device
创建完成后,点进这个新接口,重点检查:
- 防火墙设置:区域选择
wan - 网关度量值或网关跃点:如果后续要配合
mwan3,这里请设置成与其他接口不同的值
下面是我的一个配置示例:



当接口状态里出现 IPv6 地址时,通常就说明这一部分已经配置完成:
1 | |
lan
大多数校园网环境不会给路由器分配 IPv6 PD,因此没法像普通家宽那样直接给 LAN 下发一整个前缀。这里我采用的是 NAT66:LAN 使用本地 ULA 地址,下级设备出站时由 WAN 侧 IPv6 地址进行转换。
相比直接桥接或中继,这种方式更稳一些,也更适合已经有自己内网规划的软路由环境。
具体配置如下:


配置完成后,LAN 状态一般会类似这样:
1 | |
如果这里没有出现 IPv6 字段,可以优先检查下面几项:
- LAN 对应设备是否已经开启
ipv6='1' - LAN 接口里是否手动填写了 IPv6 地址或前缀
- 保存后是否已经重新应用网络配置
如果还是不显示,可以在 shell 中执行下面的命令确认接口是否真的拿到了 IPv6 地址:
1 | |
如果 br-lan 上已经有你配置的 fdxx: 地址,但 LuCI 里没及时显示,重启一次网络服务通常即可:
1 | |
防火墙
请先确认已经安装 NAT66 相关组件:
1 | |
然后在图形化页面中进入:网络 -> 防火墙 -> 区域 -> wan,编辑 wan 区域。
在“高级设置”中勾选:
IPv6 伪装

做到这里以后,下级设备通常已经可以正常访问 IPv6 外网了,但路由器本机可能仍然无法直接访问 IPv6 外网。
为路由器本机补默认路由
出现这个现象的原因通常是:系统里虽然有针对特定源地址的默认 IPv6 路由,但没有一条适用于“路由器本机主动发起流量”的通用默认路由。因此,需要手动补一条默认路由。
先找出上游 IPv6 路由器的链路本地地址:
1 | |
示例输出:
1 | |
注意两点:
- 这里只需要看带有
router标记的那一行 - 末尾状态可能是
REACHABLE、STALE、DELAY等,通常都没有问题
接着把查到的 fe80::... 地址填入默认路由:
1 | |
执行完成后,路由器本机一般就可以正常访问 IPv6 外网了。
这里的 eth00 一定要改成你实际 WAN 所在的物理接口,不要直接照抄。
如果你只是临时测试,到这里就够了;但这条路由在重启网络或重启路由器后通常会失效,需要你自行写入启动脚本或热插拔脚本持久化。
mwan3
如果你还需要给 IPv6 配置和 IPv4 类似的 mwan3 负载均衡,可以参考你现有的 IPv4 配置思路:
- 新增对应的 IPv6 接口
- 在
mwan3中把协议族改为 IPv6 - 其他权重、成员、策略配置基本保持一致
总结
如果你的校园网环境只给终端地址、不下发 IPv6 PD,那么 NAT66 + ULA 是一个比较实用的折中方案。整体流程并不复杂,核心就是三件事:
- 确保 WAN 侧能正常拿到 IPv6 地址
- 给 LAN 配置本地 IPv6 地址,并打开
wan区域的IPv6 伪装 - 如果路由器本机无法出 IPv6,再手动补默认路由
这样配置后,下级设备和路由器本机通常都能比较稳定地访问 IPv6 外网。