主题模式
Are you an LLM? You can read better optimized documentation at /esxi/openwrt/turn-off-ipv6.md for this page in Markdown format
OpenWrt IPv6 配置指南:关闭与旁路由穿透设置
在 OpenWrt 的使用过程中,IPv6 往往是一个让人“又爱又恨”的功能。对于新手来说,错误的配置可能导致网络断连;而对于进阶用户,如何在旁路由模式下实现 IPv6 的完美穿透则是一个挑战。
本文将分两部分讲解:如何彻底关闭 IPv6 以及 旁路由模式下的 IPv6 穿透配置。
第一部分:如何彻底关闭 IPv6
如果你目前的网络环境不需要 IPv6,或者遇到了兼容性问题,可以按照以下步骤将其关闭。
1. WAN 口设置
删除 WAN6
- 网络 > 网卡 中
- 删除名为WAN6的接口
编辑 IPV6 设置
- WAN 接口中点击 修改/编辑,
- 点击 DHCP 服务器 > IPv6 设置
- RA 服务 & DHCPv6 服务 & NDP 代理 选择 已禁用
高级设置
LAN 口设置
- 同 WAN 口设置 ,只是修改对象选择 LAN 口
- 修改完毕后,点击 保存
保存并应用
- 做完
WAN 口设置和LAN 口设置后 - 还有最后一步,在
全局网络选项中IPv6 ULA 前缀内容清除 - 点击保存并应用,即可完成操作
防火墙设置
- 在 网络 > 防火墙 中,选择 通信规则
- 把所有为入站 IPv6 或 转发 IPv6 或 出站 IPv6 的 启用 放弃勾选
- 不启用之后,点击保存并应用
DHCP/DNS 设置
- 在 网络 > DHCP/DNS 中,选择 高级设置
- 在大雕的 OpenWrt (lede)中,是有 禁止解析 IPv6 DNS 记录 的,但是在原版的 OpenWrt 中,是没有这个选项的

- 下图为原版 OpenWrt > 网络 > DHCP/DNS > 高级设置
下面需要用到 SSH 操作(如何开启 SSH 请自己解决)
- SSH 连接路由器
- 输入第一条命令,按回车执行
sh
uci set dhcp.@dnsmasq[0].filter_aaaa='1' #1为禁止,0启用
uci commit dhcp
/etc/init.d/odhcpd disable
echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf #所有接口禁用ipv6
echo 'net.ipv6.conf.eth0.disable_ipv6 = 1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf #禁用某一个指定接口的IPv6(例如:eh0)重启路由器
第二部分:旁路由模式下的 IPv6 穿透配置
在旁路由(Side Router)模式下,主路由负责拨号和分配 IP,OpenWrt 仅作为网关处理流量。此时如果希望内网设备获得 IPv6 地址,需要开启“穿透”功能。
1. 核心逻辑
旁路由的 IPv6 穿透本质上是让 OpenWrt 不拦截、不修改 IPv6 的 NDP(邻居发现协议)和 RA(路由通告)报文,让它们直接在主路由和内网设备之间传输。
2. 配置步骤
LAN 口设置:
- 进入 网络 > 接口 > LAN > 编辑。
- 在 DHCP 服务器 > IPv6 设置 中:
- RA 服务:选择
中继模式(Relay mode)。 - DHCPv6 服务:选择
中继模式。 - NDP 代理:选择
中继模式。
- RA 服务:选择
- 点击保存。
防火墙设置:
- 确保 网络 > 防火墙 中,LAN 区域的 入站/出站/转发 均设置为
接受。 - 在 自定义规则 中,确保没有禁止 IPv6 相关的规则。
- 确保 网络 > 防火墙 中,LAN 区域的 入站/出站/转发 均设置为
关闭 ULA:
- 进入 网络 > 接口 > 全局网络选项。
- 清空 IPv6 ULA 前缀 内容,避免产生本地私有 IPv6 地址干扰。
3. 验证方法
配置完成后,重启 OpenWrt 的网络服务。在内网设备的命令行中输入 ipconfig (Windows) 或 ifconfig (Mac/Linux),如果能看到以 240e: 或 2408: 开头的公网 IPv6 地址,说明穿透成功。
常见问题:
- 能获取 IPv6 但无法上网:检查主路由是否已经正确获取了 IPv6 前缀。
- 速度变慢:部分老旧设备在处理 NDP 中继时性能较差,建议尝试关闭 NDP 代理,仅开启 RA 中继。