我有一个如下的设置
- 我有一个连接到互联网的路由器,我的 ISP 提供动态 IP
- 两个系统通过 locl ip 192.168.1.2 和 192.168.1.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
答案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