无法通过互联网 ssh 到自己吗?

无法通过互联网 ssh 到自己吗?

我正在尝试通过 ssh 连接到自己。 (用于测试目的)。我使用的是 Ubuntu 笔记本电脑。我成功启动了 ssh 服务器,并且“ssh localhost”工作正常。如果我尝试“ssh”,它也会起作用。 (我从 ifconfig 获得)但是如果我尝试使用我的公共 IP 地址(在 Whatismyipadress.com 上获得),它不起作用,我会在 2 分钟后超时。 (请注意,“ping”效果很好)

知道为什么我会得到这个吗?如果问题来自我的路由器(或者是调制解调器,或者类似的东西?我不知道),我不会感到惊讶,它可以正常工作,但不知道在哪里重定向 ssh 请求(也许在家里的计算机不运行 ssh 服务器?)

答案1

正如@Findus23所说,你必须将一个端口(不同于22,它可能用作连接到SSH路由器本身的默认端口)从路由器转发到你的PC。

我举个例子:

PC [192.168.1.10] <==> [192.168.1.1] Router [1.1.1.1] <==> Internet  

正如您所看到的,通过 SSH 连接到该地址1.1.1.1会导致连接到路由器的公共接口(面向 Internet)上的端口 22。

如果你想访问位于路由器后面的 PC(因此,在地址空间的专用网络中192.168.1.0/24)您必须启用转发端口
这是强制性的,因为您的路由器必须从与其连接的 PC 的完整地址空间中知道它必须联系哪个主机。例如:

(PC1[192.168.1.2], PC2[192.168.1.3]) <==> Router  

路由器无法知道它是否必须路由到指定端口PC1PC2何时联系到指定端口。
启用Port Forwarding你可以说:

所有从 Internet 到路由器端口 X 的连接都必须路由到 PCZ 的端口 Y

所以,就你而言:

Router:<port> => PC1:22 (route connection from router port 4000 to port 22 of PC1)
ssh -p <port> user@<router-IP>  

结果从 Internet 连接到指定的本地主机。

相关内容