梅林、Padavan 和 OpenWRT 设置 IPv6 防火墙并开放指定端口
前言
IPv6 获取到的都是公网 IPv6,设备是直接暴露在公网中的,因此建议开启 IPv6 防火墙开放自己需要的端口。
由于 IPv6 是动态的,因此我们放行时,本地 IP 地址要按 ::a:b:c:b/::ffff:ffff:ffff:ffff
的格式进行填写,其中 a:b:c:b
部分替换为实际设备 IP 地址的后四段,而要通过这种形式指定设备时,需要提前将设备的 IPv6 后缀固定下来。
- 方法一:设置 EUI-64,后缀只与 MAC 地址有关,不随前缀变动,设置可以参考 Linux 通过 EUI-64 固定 IPv6 地址后缀
- 方法二:路由器 IPv6 设置选择 Stateful 有状态(DHCPv6)
梅林
在防火墙的一般设置中,勾选启用防火墙以及启用 Dos 防护,响应 ICMP Echo (ping) 要求可以根据自己的需求选择是否勾选
放行端口在防火墙的 IPV6 防火墙设置中,在本地 IP中填写后缀,如 0::a:b:c:b/0::ffff:ffff:ffff:ffff
,端口和协议填写实际需要放行的即可,以 WireGuard 为例,放行的就是 51820 端口 UDP 协议
WARNING
由于我这个版本的梅林系统存在 BUG,使用 :: 时开头的 0 不可以省略,因此需要填写 0::a:b:c:b/0::ffff:ffff:ffff:ffff
,正常情况下无需写 0
Padavan
在高级设置->防火墙->通用设置中,勾选启用防火墙、启用 DDoS 防护、阻止 SYN 洪水攻击,响应来自外网的 Ping 请求可以根据自己的需求选择是否勾选
而对于放行端口来说,Padavan 并没有一个可视化的界面进行操作,需要自己在自定义设置->脚本->在防火墙规则启动后执行中通过命令的形式添加放行端口的命令
最基本的命令如下
ip6tables -I FORWARD -p <tcp/udp> -d <IPv6 后缀> --dport <port> -j ACCEPT
-p
为放行的协议,可以选择 tcp 或者 udp-d
为目的地址,一般为 IPv6 地址后缀或者域名--dport
为放行端口
以放行 WireGuard 为例,完整的命令为
ip6tables -I FORWARD -p udp -d ::a:b:c:b/::ffff:ffff:ffff:ffff --dport 51820 -j ACCEPT
OpenWRT
OpenWRT 的防火墙设置十分复杂,一般来说默认就已经开启,感兴趣的可以自行查阅相关资料,我们只需要关心的是防火墙常规设置中的转发是否已经设置为拒绝
然后来到通信规则中,添加一条新的规则,源区域选择 wan,目标区域选择 lan,目标地址填写 ::a:b:c:b/::ffff:ffff:ffff:ffff
,然后填写需要放行的协议以及端口,同时还可以在高级设置中,选择仅 IPv6,填写完成点击保存并应用即可
预览: