我有来自 192.168.3.51 到 192.168.3.10 的 TCP 流量,但我想将其发送到 192.168.3.50 有没有办法在 iptables 中进行设置,以便只有来自 A 到 B 的 TCP 流量才会发送到 C?谢谢。
答案1
据我所知,您无法在防火墙(如 iptables)中设置路由行为。但是您可以将一般流量通过 B 路由到 C。
答案2
从声音上看,DNAT 实际上是可以工作的 - 但您认为 DNAT 不接受源 IP 的假设是不正确的。
以下是您可能需要的规则的一般示例:
sudo iptables -t nat -A PREROUTING -s 1.1.1.1 -m tcp -p tcp --dport 8080 -d 2.2.2.2 -j DNAT --to-destination 3.3.3.3
这意味着当 1.1.1.1 尝试连接到 2.2.2.2:8080 时,它将看到来自 3.3.3.3:8080 的内容 - 因此不是“真正”意义上的重定向(例如ICMP 重定向),但听起来它可以实现您想要实现的目标。