如果我打印iptables
概述,iptables -L
我会得到以下输出:
$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- !richtercloud.de anywhere tcp dpt:http to:192.168.178.30:3128
其中最后一列是没有标题的单独列(它显示什么?为什么没有标题?)或者是目标列的延续(表示“任何地方”条件的限制)。
我可能已经创建了规则sudo iptables -t nat -A PREROUTING -i eth1 ! -s 192.168.178.30 -p tcp --dport 80 -j DNAT --to 192.168.178.30:3128
(不要依赖它,它对于回答问题来说并不重要) - 我才刚刚开始iptables
(并且必须面对这样的 - 让我们温和地称之为 - 废话)。
iptables
我在带有 Linux 4.0.1 的 Ubuntu 15.04 上运行v1.4.21。
答案1
为什么没有标题是开发人员需要回答的问题,可能是因为它是目的地的“某种”一部分,或者它可能根据上下文有不同的含义 - 因此更像是一个通用字段。
源和目标列用于匹配数据包的 IP 地址,并tcp dpt:http
匹配目标端口。
然后,由于这是一条 NAT 规则,下一部分描述了如果匹配,我们希望对数据包执行的操作。在本例中,我们希望修改数据包的目标 IP 和端口,以便数据包可以到达代理服务器。
实际上这是一个透明的代理规则 - 它将抓取任何不是来自 richtercloud.de、目的地为 80 端口的数据包,并通过代理服务器发送它们。