无法从一台机器 SSH 到另一台机器

无法从一台机器 SSH 到另一台机器

我有 2 台笔记本电脑:笔记本电脑 1 只装有 ubuntu 20,没有任何虚拟机。笔记本电脑 2 装有 Windows 和虚拟机(ubuntu 20)。

因此,情况是,从 VM ubuntu(笔记本电脑 2)我可以通过 SSH 连接第一个,但不能通过 SSH 连接第二个。我检查了第一个是否启用了 ssh 端口 22,就像第二个一样。

有人能帮助新的 Linux 爱好者吗?

谢谢

答案1

欢迎来到 AskUbuntu:)

TL;DR:如果您位于 NAT 后面,请转发 VM 提供程序(又名 VirtualBox 或 VMWare Player)上的 SSH 端口,或者使用桥接适配器连接 VM。

您可以从虚拟机通过 SSH 进入“真实”Ubuntu 计算机,这可能与您的虚拟机提供商的网络设置方式有关。您很可能使用的是 VirtualBox 或 VMWare Player。我对后者没有太多经验,所以我无法真正指导您完成那里的步骤,但如果您使用的是 VirtualBox,我可以尝试提供一些帮助。

在网络世界中,我们通常使用 NAT(网络地址转换器)来让 LAN(家庭网络)等网络使用私有地址,同时仍能连接到公共互联网。这些 NAT 就是为什么我们在家庭网络中的机器的 IP 地址与我们访问以下网站时看到的 IP 地址不同的原因我的 IP 是什么?。如果您更愿意使用命令行来检查您的公共 IP,您可以运行dig myip.opendns.com @resolver1.opendns.com来检查,前提是您已经dig安装了。然后,您可以查看接口的 IP 地址,您可以检查它是否与您运行的 IP 地址ip a最有可能不同。

NAT 非常方便它们在连接到 NAT 后面的主机时确实会带来一些问题。我们必须打开端口正如他们通常所说的那样,这样我们就可以将外部请求转发到内部机器。当您添加虚拟机时,它通常会位于虚拟机提供商处理的 NAT 后面。除非您打开端口以允许外部连接,否则您将无法通过 SSH 进入虚拟机……不是,它之所以反过来工作是因为从之内NAT 对其后面的主机是透明的。NAT 只会“记录”主机(在本例中是您的 VM)打开了到任何地方的连接,并将回复无缝转发给主机(再次是您的 VM)。

切入正题,您可以转发虚拟机上的端口,具体操作如下:TechRepublic 上的文章比我解释得更好,或者您可以选择使用不同的拓扑。

如果不将 VM 置于 NAT 后面,而是使用Bridged AdapterVirtualBox 上的配置或 VMWare Player 上等效的配置,则会看到 VM 被分配了一个 IP,就好像它是您家庭/本地网络上的完全独立的计算机一样。您可以在ip aVM 上进行检查。这样,您现在就可以通过 SSH 连接到分配给 VM 的新 IP,而根本不必处理 NAT。此配置使您的 VM 成为 LAN 的正式成员,这可能会带来一些您不愿遇到的问题。在这种情况下,我建议坚持使用端口转发。您可以通过转到 VM 的配置部分,导航到“网络”选项卡并Bridged AdapterAttached To菜单上进行选择来配置此功能。请记住将其连接到与您的另一台机器位于同一网络上的接口。也就是说,如果您使用的是无线网络,则为 WiFi NIC(网络接口卡),如果您使用的是有线网络,则为以太网 NIC。

归根结底,你可以做最适合自己的事。我希望这能有所帮助,如果你还有任何其他问题,请随时跟进:我很乐意提供帮助。

再次欢迎!

答案2

您必须将 VM 上的虚拟网络适配器设为“桥接”适配器,以便 VM 被视为网络上的另一台机器,而不是位于 NAT(网络地址转换)后面。

关闭虚拟机,转到虚拟机设置,单击网络适配器,然后选择“桥接”。

相关内容