![ssh 在同一个路由器和调制解调器后面的两台不同的计算机?](https://linux22.com/image/1419416/ssh%20%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%E8%B7%AF%E7%94%B1%E5%99%A8%E5%92%8C%E8%B0%83%E5%88%B6%E8%A7%A3%E8%B0%83%E5%99%A8%E5%90%8E%E9%9D%A2%E7%9A%84%E4%B8%A4%E5%8F%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%EF%BC%9F.png)
好吧,我一直遵循转发方面的所有规则。
我目前有两台计算机,我们称之为 Computer DOG 和 Computer CAT。
我可以从我的网络外部完美地通过 ssh 进入 DOG。我打开路由器并添加了一项新服务,使用端口 22 转发到 192.168.1.10。因此,我能够从网络外部使用我的公共 IP 地址通过 ssh 进入 dog。作为 ssh[电子邮件保护]-l 狗。
现在对于 Cat,由于端口 22 已用完,我尝试打开端口 2222。因此,当我尝试 ssh[电子邮件保护]-p 2222 我收到连接超时或连接被拒绝的消息。我还编辑了我的 /etc/ssh/sshd_conf 文件并在其中添加了端口 2222。在我的路由器上,我还添加了 192.168.1.7,即 cat add 添加了端口 2222。有趣的是,我可以通过输入“ssh”在网络中正常使用 SSH CAT[电子邮件保护]“并直接进入我的本地网络。
我需要更改 ubuntu 的防火墙吗?或者我的调制解调器出了什么问题?或者我做错了什么?
答案1
您误解了端口转发。
您已正确设置 DOG...即外部 IP 端口 22 -> DOG 内部 IP 端口 22
对于 CAT,您需要的是外部 IP 端口 2222 -> CAT 内部 IP 端口 22
您不想更改任何本地机器,您只希望路由器接受 2222 的请求并将其发送到正确的 IP/端口组合,这是 CAT 的内部 IP,其 SSH 服务在端口 22 上运行。
例如,这是我在路由器上设置的方式(您的屏幕可能看起来略有不同)。
上述指令对路由器说:获取来自端口 2222 的互联网流量并将其路由到本地网络 (本地 IP 地址 192.168.1.5) 上 CAT 的端口 22。
另一个提示:如果您的路由器已启用 DHCP,请在路由器中找到 DHCP 预留表并向其中添加条目,以便 CAT 和 DOG 始终获得相同的 IP 地址。DHCP 会分配您的本地 IP 地址,当设备上线并说“我需要一个 IP”时,它只会分配下一个可用的 IP 地址。但是,当您转发端口时,您希望这些本地设备始终获得相同的 IP。如果没有,那么有一天 DOG 可能会拥有 CAT 的 IP,反之亦然。设置 DHCP 预留将确保 DOG 和 CAT 始终获得相同的 IP。