反向 ssh

反向 ssh

我有一个工作站,我需要通过 ssh 连接到远程服务器。服务器运行的是 Solaris 11。我可以连接到远程服务器,但是当我尝试从远程服务器 ssh 返回我的工作站时,出现超时错误。

为什么我可以连接到远程主机但无法重新连接?

PS:我的工作站上的防火墙已被禁用。

答案1

您可以通过端口 22 从机器 A 连接到机器 B,但这并不意味着您可以通过端口 22 从机器 B 连接到机器 A。毕竟,我的桌面可以连接到google.com端口 80,但这绝对不意味着整个全局的 Google 服务器阵列都可以连接到我的桌面的 apache 实例。

很多因素都会造成阻碍:NAT、您站点的防火墙、他们的站点的防火墙以及介于二者之间的某些防火墙,仅举几例。

要做的就是使用 ssh 从 Sol 11 框建立一条反向隧道回到您的桌面。您可以通过连接

desktop% ssh solaris-11-server -R 2222:localhost:22

然后,当你在 Sol11 盒子上,并想要 ssh 到你的家庭系统时,你可以通过端口 2222(这只是一个随机数,如果需要,可以在上面和下面的命令中更改它)连接到 Sol 11 盒子,使用

sol11% ssh localhost -p 2222

答案2

(这是一个完全推测性的答案,因为您没有提供有关您的桌面是哪种操作系统以及您的服务器是否在局域网上的详细信息......)

可能是因为您的工作站正在使用路由器提供的 NAT IP 地址。

如果你输入

ipconfig

并查找 IPv4 地址,如果它以10.0..或开头,192.168.则说明您已使用 NAT(网络地址转换)通过“私有地址”隐藏在互联网中

这是一个 NAT 客户端的示例,(因此可以直接从服务器连接回来(除非使用 MadHatter 提供的解决方法))

在此处输入图片描述

有关私有寻址 rfc 1918 的更多信息,请参见此处 -https://en.wikipedia.org/wiki/Private_network

这里有一个简短的教程,关于如何检查你的 Windows 桌面是否被 NAT 了; http://www.youtube.com/watch?v=49tYGwBhP3Y

相关内容