175 字
1 分钟
mwan3 + NPTv6 多线 IPv6 共存

有问题欢迎留言反馈。

前提#

IPv6 ULA 前缀 要设置成 2001:db8::/32

配置脚本#

修改 WAN_IF 中的接口名和 LAN_IF 内容,WAN_IF 可添加多个,用空格隔开。

注意:以下脚本加了 dstnat,直接使用官方写法会导致外网无法访问内网的 IPv6 地址服务。

Terminal window
cat << "EOF" > /etc/nftables.d/npt6.sh
LAN_IF="lan"
WAN_IF="wan_isp1_6 wan_isp2_6"
. /lib/functions/network.sh
network_flush_cache
network_get_prefix_assignment6 LAN_PFX "${LAN_IF}"
for WAN_IF in ${WAN_IF}; do
network_get_device WAN_DEV "${WAN_IF}"
network_get_prefix6 WAN_PFX "${WAN_IF}"
nft add rule inet fw4 srcnat \
oif "${WAN_DEV}" snat prefix to ip6 \
saddr map { "${LAN_PFX}" : "${WAN_PFX}" }
nft add rule inet fw4 dstnat \
iif "${WAN_DEV}" dnat prefix to ip6 \
daddr map { "${WAN_PFX}" : "${LAN_PFX}" }
done
EOF
uci -q delete firewall.npt6
uci set firewall.npt6="include"
uci set firewall.npt6.path="/etc/nftables.d/npt6.sh"
uci commit firewall
service firewall restart

参考#

mwan3 + NPTv6 多线 IPv6 共存
https://iiii.fun/posts/openwrt/openwrt-nptv6/
作者
慶靈
发布于
2025-09-10
许可协议
CC BY-NC-SA 4.0