iptable 将出站流量转发到 LAN 失败

iptable 将出站流量转发到 LAN 失败

我正在尝试将出站流量重定向到 LAN 中另一台服务器的特定 IP 地址和端口。

我在路由器上使用了以下命令:

iptables -t nat -A PREROUTING -p tcp --dport 1080 -d 130.83.xx.xx -j DNAT --to-destination 192.168.1.34:1080

哪个应该重定向130.83.xx.xx:1080192.168.1.34:1080

但是当我尝试使用nc连接到时130.83.xx.xx:1080,nc 无法成功连接。

然后,我深入研究了一下网络流量,发现 nc 得到的是来自192.168.1.34而不是 的响应130.83.xx.xx

https://i.stack.imgur.com/inHR7.png

我认为这nc可能会导致任何其他与此连接相关的软件出现问题并决定将其 RST。

这些都在网络接口采用桥接模式的虚拟机中运行,因此网络流量可能看起来有点奇怪。数据包 1 来自运行的虚拟机nc 130.83.xx.xx 1080,我认为数据包 2 来自执行重定向的路由器。

看起来路由器正在尝试MASQURADE获取源 IP(192.168.1.17),但没有对响应执行相同的操作,是我做错了什么还是我错过了一些其他 iptable 规则来使其工作?

答案1

找到问题了。192.168.1.34 直接响应 192.168.1.17,无需经过路由器内核处理,因为它们位于同一子网中。因此,为了使其正常工作,我需要为每个子网创建一个 VLAN,或者将它们物理地分离到不同的网络中。

相关内容