在我们的网络中,我有 3 个客户端:A、B 和 C(连接到同一个路由器)。我尝试使用 iptables-legacy将到达 B 端口的流量重定向4440
到 C 端口4441
- 在 B 上模拟端口监听器:我输入
nc -l 4440
- 在 C 上模拟端口监听器:我输入
nc -l 4441
- 在 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
我在网上找到的任何文章都无法解决我的问题。