如何将端口转发到同一网络接口上的不同IP地址?

如何将端口转发到同一网络接口上的不同IP地址?

我有 3 个系统分布在 2 个网络中:

  • 具有 1 个 NIC 的计算机 1:IP 地址 192.168.10.22
  • 具有 1 个 NIC 的计算机 2:IP 地址为 192.168.10.30 和 192.168.11.30
  • 具有 1 个 NIC 的计算机 3:IP 地址 192.168.11.33

我想要从计算机 3 到计算机 1 的反向 SSH 隧道。计算机 2 到计算机 3 应使用端口 2222,而计算机 1 到计算机 2 应使用端口 22。在我的情况下,由于某种原因它不起作用。以下是我尝试过的:

在计算机2上:

$sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward=1

# External machine connects to 192.168.11.30:22, forwarded to 192.168.10.30:2222
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.11.30 --dport 22 -j DNAT --to-destination 192.168.10.30:2222
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.30 --dport 2222 -j SNAT --to-source 192.168.11.30

# Internal machine2 connects to 192.168.10.22:2222, forwarded to 192.168.11.30:22
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.10.30 --dport 2222 -j DNAT --to-destination 192.168.11.30:22
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.11.30 --dport 22 -j SNAT --to-source 192.168.10.30

#启动反向SSH:

   $ssh -N -R 2222:192.168.10.30:22 [email protected]
   Warning: remote port forwarding failed for listen port 2222

在计算机3上:

   $ssh [email protected]
   ssh connect to host 192.168.11.30 port 22: Connection refused.

为什么我会收到警告?如何解决无法连接的问题?

相关内容