如何将所有传入的数据包转发到特定的 IP?

如何将所有传入的数据包转发到特定的 IP?

我想将传入我电脑7778端口的所有 TCP 数据包转发到连接的设备。它是 ip - 192.168.137.111。Nmap 显示它正在监听7778端口,我可以从我的电脑 ping 它。根据答案,我添加了以下规则:我的 PC 的 IP 在
iptables -t nat -A PREROUTING -p tcp --dport 7778 -j DNAT --to-destination 192.168.137.111:7778
iptables -t nat -A POSTROUTING -p tcp -d 192.168.137.111 --dport 7778 -j SNAT --to-source 10.99.220.62

哪里10.99.220.62
此外,我添加了iptables -I INPUT -p tcp -m tcp --dport 7778 -j ACCEPT

然后,当我尝试10.99.220.62:7778从另一台计算机连接时,tcpdump -i enp3s0 'port 7778'显示一个数据包:19:56:08.035819 IP 10.99.221.104.60827 > alexandr-All-Series.7778: Flags [S], seq 568409282, win 8192, options [mss 1460,nop,nop,sackOK], length 0
但是当我尝试 tcpdump 时,enx006037a1f5ef它“代表”连接的设备,它什么也没有显示。而且我没有在发送数据包的计算机上收到任何响应。
我使用的是 Mint 19

答案1

您的防火墙FORWARD链策略设置为 DROP,并且没有其他规则用于接受端口的数据包。这意味着防火墙将在数据包到达路由器时将其丢弃。

您需要添加以下规则:

iptables -A FORWARD -d 192.168.137.111 -p tcp --dport 7778 -j ACCEPT

相关内容