通过路由器SSH到服务器端口转发

嗨,所以我们的networking上有多台机器在端口22上运行ssh,因此我们在路由器上设置了端口转发,其中一台为22-> 22,另一台为222-> 22。 如果外部端口也是22,外部世界将被设置为222,则不允许我们连接到机器,从而使我们禁止外部访问第一台机器。 是否有某种configuration,禁用访问这种types的情况?

期望的function:

Outside----P22----->router-----P22----->Machine1 (Currently Works) Outside----P222---->router-----P22----->Machine2 (Returns Connection Refused) 

只有端口22在任何一台机器(与其他残疾人)已经工作到目前为止。

路由器: Linksys E2500

您可以决定使用以下技巧,而不是在您的路由器上打出多个洞:

  1. 使用以下命令在一个terminal窗口中打开与第一台机器的连接:

    ssh -L 10022:machine-2-local-ip:22 user-on-machine-1 @ router

  2. 打开另一个terminal窗口,你将能够安全地连接到机器2使用

    ssh -p10022 user-on-machine-2 @ 0

用简单的英语来形容它:

第一个命令启动与端口22上的路由器的ssh会话,并设置ssh port-forwading将本地主机的端口10022绑定到端口22上的machine-2-local-ip地址(从路由器可见)。 因此,如果路由器上的/ etc / hosts中有适当的内部DNS或名称,则可以使用名称代替machine-2-local-ip,否则请使用第二台机器的内部IP地址。

第二个命令连接到本地主机上的端口10022。 此端口通过步骤1中build立的ssh会话转发到machine-2。 🙂

希望这可以帮助。

我以前在这种情况下,多个系统想通过NAT路由器使用相同的端口。 到目前为止,最简单的解决scheme是将本地和远程端口设置为同一端口,因此:

 internet -> port22 -> router -> machine 1 port 22 internet -> port222 -> router -> machine 2 port 222 

我并不是说这是不可能的,但是对于几个消费级路由器,我无法获得任何其他configuration。