我想在 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
尝试类似这样的操作:
ip6tables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
您的数据包不会到达 nat 表的 INPUT 链。传入数据包通过 iptables 的方式如下:
在线 -> raw:PREROUTING
-> mangle:PREROUTING
-> nat:PREROUTING
- > routing decision
-> - mangle:INPUT
> filter:INPUT
->守护进程