![OpenWRT IPv6 防火墙重定向端口](https://linux22.com/image/1568375/OpenWRT%20IPv6%20%E9%98%B2%E7%81%AB%E5%A2%99%E9%87%8D%E5%AE%9A%E5%90%91%E7%AB%AF%E5%8F%A3.png)
有人知道如何在 OpenWRT 中将传入端口重定向到 IPv6 地址的另一个端口吗?
其中不涉及 NAT,只是一个普通的全局 IPv6 地址。
我想要做的是更改多个服务器的 SSH 端口;在内部将任意端口号重定向到 22。同时本地网络仍保留端口 22。
例如 [2345::1]:5000 -> OpenWRT -> [2345::1]:22
当使用等效的 IPv4 NAT 时,此配置非常简单,因为可以轻松使用端口转发配置端口。
非常感谢
答案1
实际上,您也可以在 Linux ip6tables 中使用相同的基于 DNAT 的端口转发。主要区别在于您不需要改变目标地址;另一方面,你确实需要匹配在现有地址上。
-t nat -I PREROUTING -d 2345::1 -p tcp --dport 5000 -j DNAT --to-destination [2345::1]:22
当然,使用 IPv6 时您不需要基于 SNAT 的伪装,但这是一个完全独立的防火墙规则,因此可以简单地省略它。
我不知道这对 OpenWRT 来说意味着什么(除了你可能需要这个kmod-ipt-nat6
包),但我怀疑它是这样的:
config redirect
option family ipv6
option src wan6
option src_dip 2345::1
option proto tcp
option src_dport 5000
option target DNAT
option dest_ip 2345::1
option dest_port 22
答案2
目前似乎无法在 OpenWRT 的防火墙 3 中使用 IPv6 的“配置重定向”。
但是我可以使用以下规则手动实现它:
ip6tables -t nat -I PREROUTING -d IPV6_ADDRESS_HERE -p tcp --dport 5000 -j DNAT --to-destination [IPV6_ADDRESS_HERE]:22 ip6tables -A zone_wan_input -m conntrack --ctstate DNAT -j ACCEPT ip6tables -A zone_wan_forward -m conntrack --ctstate DNAT -j zone_(ZONE_NAME)_dest_ACCEPT