这个命令的每个部分代表什么意思?
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
:这指定了规则的目标;即,如果数据包匹配该规则该做什么。