OpenWrt软路由拨号的 IPv6 配置教程
摘要
针对光猫桥接、路由器(OpenWrt / iStoreOS / ImmortalWrt 等)拨号、设备直连的使用场景,图文讲解 IPv6 配置全流程:确认 wan_6 获取到 IPv6-PD 地址、修正 wan6 接口设置、配置 LAN 口与 DHCPv6 服务器、关闭「过滤 IPv6 AAAA 记录」以保证联网回退,最后用 IPv6 测试站验证外网连通。解决无服务器环境下靠公网 IPv6 访问内网的问题。
前言
很多用 OpenWrt 的朋友都会纠结同一个问题:IPv6 到底怎么配? 尤其是家里有 NAS、想从外面访问、又不想买服务器的人——IPv6 公网地址在很大程度上能解决"没有公网 IP、没有服务器"的痛点(设备直接拿到公网 IPv6,DDNS 绑定就能外网访问)。
今天就来手把手讲清楚 OpenWrt 里 IPv6 的配置方法。这套方法 OpenWrt 系系统通用,包括 iStoreOS、ImmortalWrt 等发行版都适用。
使用场景前提:路由器负责拨号,光猫是桥接模式,设备直连路由器或连路由器的 Wi-Fi。开始之前,可以先到下面的网站测一下你当前网络的 IPv6 是不是通的(如果本来就不通,那是运营商没给你 IPv6,配置也没用): https://www.testipv6.cn/index.html.zh_CN
预备知识:三件事先搞明白
配置本身只有五步,但搞懂下面三点,你才能判断"哪一步出问题"。
① IPv6 的地址分三类
类型 | 前缀 | 类比 | 说明 |
|---|---|---|---|
LLA 链路本地 |
| 无 | 只在同一网段内有效,不可路由,每块网卡自动生成 |
ULA 唯一本地 |
| 相当于 IPv4 的 | 内网可用,出不了公网 |
GUA 全局单播 |
| 相当于"真实的公网 IP" | 你这台 NAS 拿到的就是这个 |
关键结论:IPv6 没有 NAT。 设备拿到的 GUA 就是裸的公网地址,路由器只做转发、不做地址转换,全世界都能直接连到它。所以"IPv6 让外网访问变简单了"这句话是真的 —— 但代价是安全性完全落在防火墙身上(后文第六节专门讲这个)。
② 运营商给的是一个「前缀」,不是一个地址(PD 委派)
IPv4 时代,运营商给你一个地址,你再用 NAT 分给全家。IPv6 不是这样:运营商通过 PD(Prefix Delegation,前缀委派)给你的路由器一整个地址段,常见的是 /60 或 /56。
/60意味着你能切出 16 个/64子网/64是标准子网大小(SLAAC 强制要求),所以家里每个 VLAN 都能分到一个完整的/64
这就解释了为什么配置页面上的 「IPv6-PD」那一栏有值,才算真的通了 —— 它代表你拿到了可分配的前缀,而不仅仅是一个能上网的地址。
③ 别再混淆 wan_6 和 wan6
这是 OpenWrt 里最容易看晕的地方:
wan6—— 一个静态配置项(就是你在「网络 → 接口」里手工编辑的那个)wan_6—— PPPoE 拨号成功后,由系统动态创建出来的运行时接口(挂在pppoe-wan下面)
你日常要检查的是 wan_6 有没有拿到地址(它才是实际干活的那个),要修改配置则去动 wan6。两者名字只差一条下划线,但身份完全不同 —— 知道这一点,看教程截图时就不会找不着北。
第一步:确认拨号已获取到 IPv6
先在 OpenWrt 里确保拨号成功,进入 网络 → 接口,看是否自动出现一个 pppoe-wan 的 wan_6 接口,并且 IPv6-PD(前缀下发)那里已经有一个地址:

如果能看到 wan_6 且有地址,说明运营商和光猫侧的 IPv6 已经通了,直接跳到第三步配 LAN 口即可。
第二步:wan6 接口设置(若未获取到)
如果你没有看到 pppoe-wan 下的 wan_6,或它没有获取到结果,那就检查一下 wan6 接口是否正常:
编辑 wan6 → 常规设置,红框部分照下图设置(其他保持默认):

再进 高级设置,红框部分照下图设置(其他保持默认):

保存并应用。这样只要你的网络有 IPv6,此时
pppoe-wan下的wan_6就会获取到结果,拿到 IPv6 地址了。
这里如果要手动设置,核心是**「请求 IPv6 地址」选
try(或force)、「获取 IPv6 前缀长度」按运营商给的填(一般留空自动,或填60)**。填错前缀长度会导致 PD 拿到但无法分配给 LAN,表现为"路由器自己有 IPv6 地址,但内网设备一个都拿不到"。
第三步:配置 LAN 口(让内网设备拿到 IPv6)
WAN 侧拿到 IPv6 后,还得把 IPv6 下发到局域网设备。这一步配置 LAN 口:
常规设置,红框部分按下图设置(其他默认):

然后是 DHCP 服务器 → IPv6 设置:选择服务器模式,禁用 NDP 代理,其他默认:

保存并应用。
这样设置后,路由器会通过 DHCPv6 的方式把公网 IPv6 前缀下发给局域网内的设备,让手机、电脑都能拿到自己的公网 IPv6 地址。
「服务器模式」到底下发了什么? OpenWrt 的下发其实是两套机制配合:
RA(Router Advertisement,路由器通告) —— 路由器定期向局域网喊"这里有个
2000:xxxx::/64的前缀,你们自己拼地址"。设备用这个前缀 + 自己生成的后缀 = 完整地址,这叫 SLAAC(无状态自动配置)DHCPv6 —— 负责发地址和DNS 服务器。RA 里有两个标志位控制行为:
M(Managed)标志:置位表示"地址也找 DHCPv6 要"O(Other)标志:置位表示"DNS 等其它配置找 DHCPv6 要"
界面上的「服务器模式」就是 RA + DHCPv6 一起开。而「禁用 NDP 代理」的意思是:NDP 代理是给"上游只给一个 /128、没法分配前缀"这种特殊情况用的(比如某些二级路由场景),正常拨号拿到 PD 的情况下必须关掉,否则会和正常的下发机制打架。

第四步:关闭"过滤 IPv6 AAAA 记录"
这一步很关键,很多人配完还是上不了 IPv6 站,就是卡在这里。
OpenWrt 默认为了避免本地某些不支持 IPv6 的服务受影响、但又要保证有网,会默认开启**"过滤 IPv6 AAAA 记录"**——这个选项会拦掉 DNS 返回的 IPv6 解析结果,导致设备明明有 IPv6 却访问不了纯 IPv6 网站。
所以需要把它关闭,然后保存并应用:

这个开关为什么存在?背后是段历史包袱。 早年很多网络 IPv6 常年"半通不通"(有地址但连不出去),客户端拿到 AAAA 记录后会先去尝试 IPv6,等超时才回退 IPv4,开页面慢好几秒。于是 dnsmasq 提供了 filter-aaaa(在 OpenWrt 界面里就是"过滤 IPv6 AAAA 记录"),干脆把 AAAA 记录滤掉,强制走 IPv4 —— 这在当时是"提速优化"。
但当你的 IPv6 真正配通之后,这个开关就从"优化"变成了"故障源":DNS 不返回 AAAA,浏览器根本不知道目标有 IPv6 地址,自然不会走 IPv6。这就是"明明地址拿到了、测速网站也通,但访问 IPv6 站点还是走 IPv4"的真正原因。
顺带一个排查技巧:如果你只对个别域名不想走 IPv6(比如某个国内 App 对 IPv6 支持很差),别去动这个全局开关,改成针对域名处理或者干脆不管它 —— 全局关掉过滤、按需忽略个别域名是更合理的策略。
第五步:给 IPv6 加一道防火墙(这一步原文没有,但最重要)
前面说了,IPv6 没有 NAT。这意味着配好之后,你家所有拿到 GUA 的设备 —— NAS、摄像头、软路由后台、Docker 里跑的每一个服务 —— 在公网看来都是一台"有真实公网 IP 的主机"。
有人会说"IPv6 地址空间那么大,扫不到的"。这是误解:地址会被泄露到很多地方 —— 证书透明日志(CT)、DDNS 记录、被动 DNS、运营商日志、你文章截图里的地址。实际扫描器会从这些渠道收集目标,暴露的管理端口通常在几小时内就会被撞上。
所以三条底线建议:
默认入站策略保持
REJECT(OpenWrt 默认就是),绝对不要图省事全局放行只放行真正需要的那一台设备和端口 —— 比如只给 NAS 的
443放行,其它一律拒绝不要把管理后台暴露在 IPv6 上 —— 路由器的 80/443/8006、SSH 的 22,这些端口一旦开放,等于把家门钥匙挂在外面
如果你用的是飞牛这类 NAS,想知道"只放行某一台设备"具体怎么配(用 EUI-64 把设备后缀固定住,再按地址写防火墙规则),看这篇:飞牛开启 EUI64 实现主路由 IPv6 防火墙单设备放行。
第六步:DDNS 与前缀会变这件事
想把 NAS 从外面连回来,得有个固定入口,于是就绕不开 DDNS。但 IPv6 的 DDNS 有个特殊坑:
PD 前缀是运营商的,重播、重启光猫、运营商调整策略都可能变。 一改前缀,你所有设备的地址全变了,DDNS 里记的地址立刻失效。
对策是:让设备的地址后缀固定下来。
EUI-64:由网卡 MAC 自动推导出固定的 64 位后缀(
ff:fe特征一眼可辨)手工指定后缀:在路由器里给某台设备配一个固定的 interface ID
这样前缀变了,只有前半段变,DDNS 只需要更新前缀部分;配合 EUI-64,你甚至可以用脚本"取当前前缀 + 拼固定后缀"来生成 AAAA 记录。这就是 EUI-64 在"外网访问"场景里真正的实用价值(http://[IPv6]:端口 这种带方括号的写法,也是访问 IPv6 地址时必须遵守的格式)。
第七步:验证
配置完成后验证一下效果:
用局域网内某台设备的 IPv6 地址去访问路由器后台(比如访问你的 iStoreOS),能正常打开,说明 IPv6 内网访问 OK:


再到 testipv6.cn 测试网站测一下,各项 IPv6 检测都是 ok 的,就说明 IPv6 完全配通了:

常见问题与排错
1. 运营商没分配 IPv6
先确认你的宽带套餐/地区支持 IPv6;光猫要改成桥接模式由路由器拨号;个别运营商还需要在光猫后台开启 IPv6 协议。
2. 设备能拿到地址但上不了 IPv6 网站
大概率是第四步没关掉"过滤 IPv6 AAAA 记录",回去关掉并保存应用再试。
3. wan_6 一直没结果
回到第二步核对 wan6 的常规/高级设置是否和截图一致,重点检查获取前缀方式(通常是 DHCPv6 或 PD)。
4. 路由器自己有 IPv6、内网设备一个都没有
检查 LAN 的 RA 是否开启(第三步);如果 LAN 是"中继模式"或关了 RA,设备就永远拿不到前缀。
5. 部分 App 反而变慢/异常
有些国内 App 或服务对 IPv6 支持不完善,若遇到个别网站打不开,可以按域名针对性处理(不是全局关 IPv6)。
6. 能 ping6 通但打不开网页
多半是 DNS 没下发。DHCPv6 除了发地址还要发 DNS,检查 LAN 的 DHCPv6 设置里 DNS 是否正常下发到客户端(在客户端上
nslookup一个域名验证)。
个人结论
OpenWrt 配 IPv6 其实就三步逻辑:WAN 侧拿前缀 → LAN 侧下发 → 关掉 AAAA 过滤。对"没有公网 IPv4 又想外网访问家里服务"的人来说,IPv6 是一条近乎免费的路子——设备拿到公网 IPv6 后,配合 DDNS 就能从外面连回 NAS/软路由,省了中转服务器的成本。整个过程没有太高深的知识,照着上面几步走基本都能通,值得一试。
但请把第五步也当回事:IPv6 世界没有 NAT 兜底,防火墙就是你唯一的安全边界。配完能通,只是完成任务的一半。
如果你已经配好了 IPv6,却发现只有路由器本身能走 IPv6,挂在旁路由后面的设备不行,那是另一个经典痛点:浮动网关:一个插件解决旁路由方案最大痛点 —— 它解决的就是主路由/旁路由之间 IPv6 前缀与网关通告不一致的问题。