iptables 设置路由

iptables 设置路由

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

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

iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE

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

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

答案1

命令:

iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE

信息:

  • -t nat

    -t:对于表

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

  • -A POSTROUTING

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

    chain:在 NAT 表中找到的规则集

  • -j MASQUERADE

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

  • -o <interface>

    防火墙的外部网络设备

概括:

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

资料来源:

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

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

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

相关内容