帮助理解 iptables 命令

帮助理解 iptables 命令

这个命令的每个部分代表什么意思?

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

答案1

来自手册页iptables(8)

iptables

iptables 和 ip6tables 用于设置、维护和检查 Linux 内核中的 IPv4 和 IPv6 数据包过滤规则表。可以定义几个不同的表。每个表包含许多内置链,也可能包含用户定义的链。

-t nat

iptables 和 ip6tables 用于设置、维护和检查 Linux 内核中的 IPv4 和 IPv6 数据包过滤规则表。可以定义几个不同的表。每个表包含许多内置链,也可能包含用户定义的链。

当遇到创建新连接的数据包时,将查阅此表。它由三个内置函数组成:PREROUTING(用于在数据包进入时立即更改数据包)、OUTPUT(用于在路由之前更改本地生成的数据包)和 POSTROUTING(用于在数据包即将发出时更改数据包)。从内核 3.7 开始,IPv6 NAT 支持可用。

-A POSTROUTING

将一个或多个规则附加到所选链的末尾。当源和/或目标名称解析为多个地址时,将为每个可能的地址组合添加一条规则。

-o eth0:(eth0 是:)

数据包将通过哪个接口发送(对于进入 FORWARD、OUTPUT 和 POSTROUTING 链的数据包)。当在接口名称前使用“!”参数时,含义将反转。如果接口名称以“+”结尾,则任何以此名称开头的接口都将匹配。如果省略此选项,则任何接口名称都将匹配。

-j MASQUERADE

这指定了规则的目标;即,如果数据包匹配该规则,该做什么。目标可以是用户定义的链(除了此规则所在的链之外)、立即决定数据包命运的特殊内置目标之一或扩展(请参阅下面的扩展)。如果在规则中省略此选项(并且未使用 -g),则匹配规则将不会影响数据包的命运,但规则上的计数器将递增。

答案2

sudo:它代表“超级用户执行!”作为 Linux 系统管理员或高级用户,它是最重要的命令之一。

iptables:用于设置、维护和检查Linux内核中的IP包过滤规则表。

-t:该选项指定该命令应该操作的数据包匹配表。

nat:当遇到创建新连接的数据包时,就会查阅此表。

-A:将一个或多个规则附加到选定链的末尾。

POSTROUTING:nat 的三个内置功能之一,用于在数据包即将发出时对其进行修改。

-o eth0:将要发送数据包的接口名称。

-j MASQUERADE:这指定了规则的目标;即,如果数据包匹配该规则该做什么。

相关内容