输入级别的端口转发

输入级别的端口转发

我想在 INPUT 级别更改 ipv6 数据包的目标端口。

因此我尝试在 INPUT 级别使用带有 nat 的 ip6tables

但似乎这个命令不起作用

# ip6tables -t nat -I INPUT ! -i br0 -p TCP --dport 8080 -j REDIRECT --to-ports 80
ip6tables v1.2.7a: Unknown arg `--to-ports'
Try `ip6tables -h' or 'ip6tables --help' for more information.

我认为除了 iptable 返回的错误之外,我认为 nat 在 INPUT 级别不起作用。

那么有没有解决方案可以在 INPUT 级别更改 ipv6 数据包的目标端口?

我不想在 PREROUTING 级别更改它,因为我不想更改将要转发的 ipv6 数据包(不适用于本地进程)

答案1

NAT 在 INPUT 链中不起作用。从http://www.karlrupp.net/en/computer/nat_tutorial

REDIRECT - 将数据包重定向到本地机器

DNAT 的一个特殊情况是 REDIRECT。数据包被重定向到路由器的本地端口,例如,启用透明代理。与 DNAT 一样,REDIRECT 分别在 PREROUTING 和 OUTPUT 链中起作用。

如果您只想将数据包重定向到您自己的服务器,请将目标 IP 限制添加到规则中(1.2.3.4 是您的本地 IP):

ip6tables -t nat -I PREROUTING ! -i br0 -p TCP -d 1.2.3.4 --dport 8080 -j REDIRECT --to-ports 80

相关内容