![使用 iptables 将接收到的镜像流量发送到 docker 应用程序?](https://linux22.com/image/707049/%E4%BD%BF%E7%94%A8%20iptables%20%E5%B0%86%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E9%95%9C%E5%83%8F%E6%B5%81%E9%87%8F%E5%8F%91%E9%80%81%E5%88%B0%20docker%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我有一个接收的设置镜像流量来自我的网卡(eth0)上的许多IP地址。
我想将接收到的发往特定 IP 地址(例如 8.8.8.8)的数据包发送到在同一主机上运行的 docker 容器(例如 IP 172.17.0.2)
数据包(目标 8.8.8.0 等)-> eth0 -> 使用 iptables 过滤 8.8.8.8 -> docker 容器(172.17.0.2)
自从这些包裹不是寄给我的我无法使用 iptables 过滤它们并将其 DNAT 到 docker 容器中。
由于我对此还不熟悉,因此非常感谢任何帮助。
曾经有一个类似的问题,但我并没有真正明白。 使用 iptables 过滤镜像端口流量
编辑:NIC 已处于混杂模式,因为我同时在其上运行 tcpdump。我不知道这是否有助于回答,但 NIC 仅用于接收镜像流量。并且没有为其分配 IPv4。
答案1
您是否尝试过 PREROUTING 部分*自然? 规则应该如下所示:
iptables -t nat -A PREROUTING -d 8.8.8.8/32 -j DNAT --to-destination 172.17.0.2
在执行 PREROUTING 规则之前*筛选,因此它应该可以工作。