您好,我们的网络上有多台机器在端口 22 上运行 ssh,因此我们在路由器中将其中一台机器的端口转发设置为 22->22,另一台机器的端口转发设置为 222->22。外部设置为 222 的端口不允许我们连接到该机器,除非其外部端口也是 22,因此我们禁用了对第一台机器的外部访问。是否有某种配置可以禁用这种情况的访问?
所需功能:
Outside----P22----->router-----P22----->Machine1 (Currently Works)
Outside----P222---->router-----P22----->Machine2 (Returns Connection Refused)
到目前为止,只有两台机器外部的端口 22(另一台机器已禁用)可以正常工作。
路由器:Linksys E2500
答案1
您可以决定使用以下技巧,而不必在路由器上打多个孔:
使用以下命令在一个终端窗口中打开与第一台机器的连接:
ssh -L 10022:机器-2-本地-ip:22 机器-1 上的用户@路由器
打开另一个终端窗口,你将能够使用以下命令安全地连接到 machine-2:
ssh -p10022 机器上用户-2@0
用简单的英语来描述它:
第一个命令在端口 22 上启动与路由器的 ssh 会话,并设置 ssh 端口转发,将本地主机的端口 10022 绑定到端口 22 上的 machine-2-local-ip 地址(从路由器上可见)。因此,如果您有正确的内部 DNS 或在路由器上的 /etc/hosts 中定义了名称,则可以使用名称代替 machine-2-local-ip,否则使用第二台机器的内部 IP 地址。
第二条命令连接到本地主机上的端口 10022。此端口通过步骤 1 中建立的 ssh 会话转发到 machine-2。:)
希望这可以帮助。
答案2
我以前遇到过这种情况,多个系统想要通过 NAT 路由器使用相同的端口。到目前为止,最简单的解决方案是将本地和远程端口设置为相同的端口,因此:
internet -> port22 -> router -> machine 1 port 22
internet -> port222 -> router -> machine 2 port 222
我并不是说这是不可能的,但是对于几款消费级路由器,我无法让任何其他配置得以坚持。