Skip to main content

Ubuntu IP Masquerading

IP Masquerading (六月 2025)

IP Masquerading (六月 2025)
Anonim

IP伪装的目的是允许网络上具有专用,不可路由IP地址的计算机通过伪装的机器访问Internet。必须操纵来自专用于Internet的专用网络的流量,以便将回复路由回发出请求的计算机。要做到这一点,内核必须修改 资源 每个数据包的IP地址,以便将回复路由回它,而不是发送到请求的私有IP地址,这在Internet上是不可能的。 Linux使用 连接跟踪 (conntrack)跟踪哪些连接属于哪些机器并相应地重新路由每个返回数据包。因此,离开您的专用网络的流量“伪装”为源自您的Ubuntu网关机器。此过程在Microsoft文档中称为Internet连接共享。

IP伪装说明

这可以使用单个iptables规则来完成,根据您的网络配置,该规则可能略有不同:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

以上命令假定您的专用地址空间为192.168.0.0/16,并且您的面向Internet的设备是ppp0。语法分解如下:

  • -t nat - 规则是进入nat表
  • -A POSTROUTING - 将规则附加(-A)到POSTROUTING链
  • -s 192.168.0.0/16 - 该规则适用于源自指定地址空间的流量
  • -o ppp0 - 该规则适用于计划通过指定网络设备路由的流量
  • -j MASQUERADE - 匹配此规则的流量是“跳转”(-j)到要操纵的MASQUERADE目标,如上所述

过滤器表中的每个链(默认表,以及发生大多数或所有数据包过滤的位置)都具有默认值 政策 ACCEPT,但如果您正在创建除网关设备之外的防火墙,您可能已将策略设置为DROP或REJECT,在这种情况下,您需要通过FORWARD链允许伪装流量以使上述规则起作用:

sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

上述命令将允许从本地网络到Internet的所有连接以及与这些连接相关的所有流量返回到启动它们的计算机。

* 执照

* Ubuntu服务器指南索引