iptables 路由设置

Cod*_*dey 1 iptables networking routing nat

我想设置我的 ubuntu 计算机来路由数据包。因此我读过几篇教程,其中总是有很多规则要添加到 iptables 中。

我终于发现,路由数据包所需的唯一规则(假设 iptables 完全为空)如下:

iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

其中ext是数据包向外发送的网络接口。

我不太明白这条规则的真正作用以及为什么只需要这条规则就能使 IP 转发工作。

Geo*_*sen 5

命令:

\n\n
iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE\n
Run Code Online (Sandbox Code Playgroud)\n\n

信息:

\n\n
    \n
  • -t nat:

    \n\n
    \n

    -t:用于表

    \n\n

    NAT(即网络地址转换)是对数据包进行修改以将其重定向到备用地址的通用术语。通常,这用于允许流量超越网络边界。实施 NAT 的主机通常可以访问两个或多个网络,并配置为在它们之间路由流量。用于转换数据包\xe2\x80\x99的源字段或目标字段

    \n
  • \n
  • -A POSTROUTING:

    \n\n
    \n

    指定内置 POSTROUTING 链将规则“附加”到

    \n\n

    chain:NAT表中找到的规则集

    \n
  • \n
  • -j MASQUERADE:

    \n\n
    \n

    -j MASQUERADE 目标指定为使用防火墙/网关的外部 IP 地址屏蔽节点的私有 IP 地址。

    \n
  • \n
  • -o <interface>:

    \n\n
    \n

    防火墙的外部网络设备

    \n
  • \n
\n\n

概括:

\n\n
    \n
  • -t nat 选择表“nat”来配置 NAT 规则。
  • \n
  • -A POSTROUTING 将规则附加到 POSTROUTING 链(-A 代表“附加”)。
  • \n
  • -o eth1 此规则对于离开此网络接口的数据包有效(-o 代表“输出”)
  • \n
  • -j MASQUERADE 应该采取的操作是“伪装”数据包,即将发送者的地址替换为路由器的地址。
  • \n
\n\n

资料来源:

\n\n

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Security_Guide/s1-firewall-ipt-fwd.html

\n\n

https://www.karlrupp.net/en/computer/nat_tutorial

\n\n

https://www.thegeekstuff.com/2011/01/iptables-fundamentals/

\n