如何通过 SSH 从互联网登录家用电脑

如何通过 SSH 从互联网登录家用电脑

我有一个如下的设置

  1. 我有一个连接到互联网的路由器,我的 ISP 提供动态 IP
  2. 两个系统通过 locl ip 192.168.1.2 和 192.168.1.3 连接到路由器
  3. 路由器的本地ip是192.168.1.1

我的问题是,当我知道 ISP 分配的 IP 时,如何从互联网访问 IP 为 192.168.1.2 的计算机

我的 Dlink 路由器有一个用于 NAT 的字段,如下所示 在此处输入图片描述

我在 192.168.1.2 系统和路由器中启用了 SSH。当我填写 NAT 表中的条目并尝试连接到 192.168.1.2 系统时,它仍然只连接到路由器

我给出的服务器名称值为:192.168.1.2,协议为 tcp,所有其他端口值为 ssh 端口 22。当我给出这些值时,它显示路由器端口移动到 2222 的消息,但是当我使用 nmap 检查时,该端口未打开

答案1

大多数情况下,网络地址转换 (NAT) 由家用路由器内部完成。您的 D-link 路由器应该能够自动处理转换,但是您需要打开/转发 ssh 服务器正在运行的端口号。如果您的 ssh 服务器在 netID 为 192.168.1.2:PortNumber 的 PC 上运行,则您打开从外部传入的 ip 192.168.1.2 的 PortNumber。检查 Dlink 路由器上的规格以了解完成端口转发的方法。至于解决动态 IP 地址问题,您可能希望使用由无 IP害怕的等等...这样您就可以使用免费的 DNS 名称来解析您的动态/变化的 IP 地址。

答案2

您可以做的是将 SSH 设置在 192.168.1.2 上以监听另一个端口。通常,您可以通过编辑 sshd.conf 或 sshd_config 来执行此操作,例如端口 1022。

当你运行 ssh 时,请这样做,

ssh -p 1022 DynamicIP

其中 DynamicIP 是您的 ISP 分配的 IP。

您需要设置路由器以将端口 1022 转发至 192.168.1.2。

如果你使用的是 Windows,请考虑使用油灰作为 SSH 客户端。

答案3

最简单的方法可能是 ngrok:https://ngrok.com/

Ngrok 可以穿过任何防火墙,并设置一个可公开访问的(动态或静态)子域,以进行 HTTP 或直接 TCP 连接。咒语:

ngrok tcp 22

-> 分配 0.tcp.ngrok.io:19778,该地址在应用程序运行前一直保持打开状态。付费版本还可以保留 TCP 地址,因此您可以将 ngrok 放入 init.d 中,使其自动启动,并且只记住一个地址,无论您的 ISP 分配给您的是什么地址。

一旦分配,你就可以通过 ssh 连接到它:

ssh -p 19778 0.tcp.ngrok.io

相关内容