我有一个带有两个接口(eth1 和 eth0)的 Linux 机器。我有一个连接到 eth1 的设备,还有一台连接到 eth0 的 PC。它们的 IP 地址如下:
eth1:10.75.0.1 网络掩码 255.255.0.0
eth0:10.76.0.1 网络掩码 255.255.0.0
eth1 上的设备:10.75.255.210
eth0 上的 PC:10.76.0.3
我的路由表目前如下所示
Destination Gateway Genmask Flags Metric Ref Use Iface
10.75.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
10.76.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
我在 PC 上有一个程序需要连接到 eth1 上的设备。eth1 上的设备正在端口 53103 上广播一条消息。我想将这些数据包转发到 eth0,以便 PC 上的程序可以看到它们。我基本上想设置我的 iptable 规则,以便在 PC (eth0) 上的程序和 eth1 上的设备之间实现双向通信。程序使用的端口也是 53103。
我尝试了以下操作,但使用 tcpdump 时没有看到 eth0 上的数据包:
iptables -t nat -A PREROUTING -p udp --dport 53103 -i eth1 -j DNAT --to-destination 10.76.0.1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE