iptables 上下文中的 MASQUERADE 是什么?

Moh*_*ani 64 iptables firewall networking

iptables很多次我看到目标 MASQUERADE。那是什么?我搜索并发现了很多东西。但是我需要有人以易于理解的方式向我解释MASQUERADE是什么 ?

一个例子(取自这个答案)是:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

Ban*_*ser 46

它是一种依赖于 iptables 实现的算法,允许在不中断原始流量的情况下路由流量。

当我想创建一个虚拟 wifi 适配器并共享我的 wifi 时,我使用了伪装算法。

我不是在谈论通过您的 wifi 共享以太网连接,我在谈论通过将其伪装到虚拟适配器来通过您的 wifi 共享 wifi 连接。这实际上可以让您通过 wifi 共享您的 wifi 连接。

.

.

阅读并向下滚动到 MASQUERADE:http : //billauer.co.il/ipmasq-html.html

更深入地阅读此内容:http : //oreilly.com/openbook/linag2/book/ch11.html

所有关于“Connectify for linux”的问题都可以通过实施 MASQUERADE 算法来解决。

有关直接示例,请访问此页面:http : //pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

我还没有阅读最后一个链接!!!!但以下是准确的摘录/示例。

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢搜索引擎如何使算法成为某种邪恶的黑客。我使用它只是为了与我的 android 手机共享我的互联网。

最终编辑:此链接是最好的http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias

  • 我已经测试了“MASUERADE”规则(代码清单中的第三行),并且该链接完全共享并且跨接口可用。因此,我很困惑“FORWARD”规则的用途是什么?(代码清单中第二行的规则) (2认同)

Ser*_*ure 42

MASQUERADE 是一个 iptables 目标,当在编写规则时不知道 inet 接口的外部 ip(当服务器动态获取外部 ip 时)时,可以使用它代替 SNAT 目标(源 NAT)。

  • @Luc,带有定义源 ip 的 SNAT 目标(源网络地址转换)应放置在来自原始主机的 ip 数据包中,而不是原始源 ip。像这样`-j SNAT --to-source xx.xx.xx.xx`,其中xx.xx.xx.xx 是所需接口的外部IP。而且我不能说它_应该_在外部 ip 已知时使用。我更喜欢使用 MASQUERADE 而不是 SNAT 来使规则灵活并且不绑定到我目前拥有的特定外部 ip。 (6认同)

小智 6

在研究了上述答案后,这就是让我明白的原因:

伪装允许整个内部 IP 地址网络通过一个外部 IP 地址运行,伪装允许从一种协议转换为另一种协议(有线/无线)。

当 MASQUERADE 链从计算机发送数据报时,它...

  1. 记下数据报的类型,“TCP”、“UDP”、“ICMP”等。 注意:未知数可能无法通过 MASQUERADE 正常工作。
  2. 修改数据报,使其看起来像是由路由器机器本身生成的(一个外部地址)。
  3. 记住它已经这样做了,记录了本地源和外部目标 IP。
  4. 使用单个外部 IP 地址将数据报传输到 Internet。

注意:当目标主机收到此数据报时,它认为该数据报来自一个路由主机,并将任何回复数据报发送回该地址。

当 Linux MASQUERADE 链从其 Internet 连接接收到数据报时,

  1. 它在已建立的伪装连接表中查看该数据报是否真正属于 LAN 上的计算机。
  2. 如果是,它会撤销它在前向路径上所做的修改,并将数据报传输到 LAN 计算机。

MASQUERADE 链可用于内部创建和整个私有 IP 地址空间,以及转发不兼容的数据包。

以太网或有线协议假定数据包来自源并报告自身。Wifi 或无线协议假定数据包正在重复并报告其自身和原始来源。

为此,Wifi 和以太网无法直接桥接,因为它们不兼容。伪装导致数据包被重建,从而处理有线和无线标准之间的转换。注意:有一些方法可以让您的计算机在内部接受不兼容和桥接,但如果没有完全伪装,桥接欺骗将在外部被视为安全风险,并且这些请求将被拒绝。

  • 很好的解释,但从技术上讲,MASQUERADE 是一个目标,而不是一条链条。 (3认同)