以下是我在 iptables 中输入的规则:
$ iptables -t nat -A PREROUTING
-i wlan0 -p tcp --dport 80 -j DNAT --to-destination 19.11.11.1:80
$ iptables -t nat -A POSTROUTING -j MASQUERADE
但是当我(终端)列出它们时,我得到了目的地 0.0.0.0/0 而不是 19.11.11.1 确切地 :
Chain PREROUTING (policy ACCEPT 210 packets, 43762 bytes)
pkts bytes target prot opt in source destination
0 0 DNAT tcp -- wlan0 * 0.0.0.0/0 0.0.0.0/0
tcp dpt:80 to:19.11.11.1:80
我哪里错了?谢谢。
注意:流量来自 19.11.11.0/24 子网到 19.11.11.1:80。
答案1
在我看来这是正确的——也许你读错了输出。
要匹配的源和目标(在数据包中)是 0.0.0.0/0 0.0.0.0/0 - 即任何内容,这与您编写的规则一致(您未指定源或目标)。
对该数据包采取的操作是重定向“to:19.11.11.1:80” - 即下一行的文本。
答案2
该列列出了由或参数destination
指定的原始数据包(NAT 之前)的目标 IP 地址。由于您没有指定目标参数,因此该条目匹配任何目标 IP 地址上发往端口 80 的所有 TCP 数据包。-d
--destination