在 iptables 中,目标 DNAT 和 REDIRECT 之间有什么区别?

在 iptables 中,目标 DNAT 和 REDIRECT 之间有什么区别?

更具体地说,是

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j REDIRECT --to-ports $NEWPORT

相当于其中之一或两者?

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination :$NEWPORT
-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination $IP_OF_INT:$NEWPORT

答案1

根据 netfilter 文档,重定向是目标 NAT 的特殊情况。REDIRECT相当于DNAT对传入接口进行操作。

Linux 2.4 NAT HOWTO -- 目标 NAT

所以这意味着第一个和第二个字符串是等效的。

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j REDIRECT --to-ports $NEWPORT
-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination :$NEWPORT

字符串:

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination $IP_OF_INT:$NEWPORT

做同样的工作仅有的if $IP_OF_INT- 是传入接口上的 IP 地址( 的 IP $INT)。

相关内容