我想设置我的 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
应该采取的操作是“伪装”数据包,即用路由器的地址替换发送者的地址。
资料来源: