帮助理解iptables命令

Ale*_*766 2 iptables networking ip-forward

这个命令的每一部分是什么意思?

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

ano*_*us2 6

从手册页iptables(8)

iptables

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

-t nat

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

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

-A POSTROUTING

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

-o eth0:(eth0 是:)

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

-j MASQUERADE

这指定了规则的目标;即,如果数据包匹配它该怎么办。目标可以是用户定义的链(除了此规则所在的链),可以立即决定数据包命运的特殊内置目标之一,或者是扩展(参见下面的扩展)。如果在规则中省略此选项(并且不使用 -g),则匹配规则对数据包的命运没有影响,但规则上的计数器将增加。


kyo*_*ake 5

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

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

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

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

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

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

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

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