Linux 客户端可以使用 iptables 进行预路由吗

Linux 客户端可以使用 iptables 进行预路由吗

在我们的网络中,我有 3 个客户端:A、B 和 C(连接到同一个路由器)。我尝试使用 iptables-legacy将到达 B 端口的流量重定向4440到 C 端口4441

  1. 在 B 上模拟端口监听器:我输入nc -l 4440
  2. 在 C 上模拟端口监听器:我输入nc -l 4441
  3. 在 B 上:bog@bog-desktop:~$ sudo iptables-legacy -t nat -A PREROUTING -i eno1 -p tcp --dport 4440 -j DNAT --to-destination 192.168.1.14:4441

然后我尝试从 A telnet 到 B 的端口 4440:( telnet 192.168.1.B 4440我使用 B 代替数字只是为了方便操作)过了一会儿我收到了消息Connection timed out

然后我再次打印我的链条:

bog@bog-desktop:~$ sudo iptables-legacy -L -v --line-numbers -n -t nat
Chain PREROUTING (policy ACCEPT 18 packets, 5949 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        2   120 DNAT       tcp  --  eno1   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:4440 to:192.168.1.14:4441

Chain INPUT (policy ACCEPT 18 packets, 5949 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 7 packets, 1941 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 9 packets, 2061 bytes)
num   pkts bytes target     prot opt in     out     source               destination 

我意识到有几个包裹已经到达链中,PREROUTING但是 C 机器还没有收到它们。

telnet 192.168.1.C 4441工作正常 PS,我还在 B 上启用了转发功能sudo sysctl -w net.ipv4.ip_forward=1

我在网上找到的任何文章都无法解决我的问题。

相关内容