我正在尝试将出站流量重定向到 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:1080
到192.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,或者将它们物理地分离到不同的网络中。