如何从远程Linux服务器转换为在Win10主机上运行的ubuntu guest虚拟机?


10

简洁版本

如果我从Windows 10主机运行Ubuntu来宾VirtualBox VM,我需要ssh从远程Linux服务器到Ubuntu来宾VM 采取什么步骤?


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

长版

我很困惑,因为,如果我不是使用Ubuntu来宾VM,而是使用一台真正的Ubuntu计算机,那么AFAIK可以cat /etc/hosts找到本地IP地址,然后从远程IP地址:

user@remote --ssh--> user@<local IP>

我已经设置了ssh密钥,以便可以从Ubuntu来宾ssh进入SUSE远程服务器(即,来宾~/.ssh/id_rsa.pub已存储在remote中~/.ssh/authorized_keys)。即我已经可以:

ssh -Y user@remote

毫无困难,但是我无法做到这一点,因为我不知道客人的IP地址是什么。而且我已经尝试过ssh使用Ubuntu GUI的“连接信息”中的IP地址-ing。

另外要明确:

  • 来宾VM是Ubuntu 12.04 LTS(64位)

  • VirtualBox设置大部分:默认

  • 启用网络适配器:NAT(电缆连接,无端口转发)

我尚未设置ssh服务器,但不确定是否有必要(?),这是到目前为止的理解。

因此,假设我正在从Windows 10主机运行Ubuntu来宾VirtualBox VM,我需要ssh从远程Linux服务器到Ubuntu来宾VM 采取什么步骤?

Answers:


14

当您在路由器后面时,这通常称为“双NAT”情况。您必须从边界路由器转发到Windows系统,然后在VBox中转发到VM。您可能还必须将端口22从实际的网络连接转发到VBox NAT适配器,但是对于Windows,我不清楚。

最终,尽管如此,您最多只能在这里做三件事。它们全都在Windows中,或者不在Ubuntu Linux中,因此您的大多数答案将在“超级用户”或其他地方。

  1. (如果您在Win10所在的网络上的路由器后面)在网络上的路由器上设置端口转发,以将端口22转发到Windows 10系统。

  2. 将Windows防火墙设置为允许在端口22上入站的连接。 您可能还需要在VM网络设置中指定要从端口入站适配器将端口22转发到NAT网络。

  3. 在VirtualBox中的NAT网络上设置NAT转发规则,以将主机上的端口22转发到VM上的端口22

绕过步骤2和步骤3的一种更好的方法是在VM网络设置中使用桥接模式。然后,它将从与Windows 10系统连接的同一网络中获取IP,然后可以将边缘路由器上的转发端口22(步骤#1)移植到网络分配给VM本身的IP。这与必须进行多次跃点和配置才能使Port 22正常工作相比,痛苦程度有所减轻。

注意:某些ISP会过滤端口22,因此端口22流量将不会到达系统。如果是这种情况,则可能必须设置比端口22更高的端口(例如2022或另一个非标准端口> 1024)。


至于查找来宾的IP,该信息将出现在Linux来宾的输出中ifconfig -aip -4 addr listLinux来宾中。这是所有这些中最简单的部分,因为这是相同的,是桥接的还是NAT。


我将研究此感谢

1
@hello_there_andy我在笔记本电脑上通过基于NAT设置的基于Linux的LXC / LXD容器或通过VMware进行了很多虚拟化,而这些行为与NAT类似(基本上,我已经习惯了这一系列问题,呵呵)。在Linux和Windows中,该过程相似,但是步骤完全不同,尽管在我的情况下,我的VM永远不需要-> in;对于这些VM,我将它们放在专用的ESXi虚拟机管理程序上,该虚拟机是专门用于运行VM的计算机,并将其直接桥接到现有的以太网设置(那里没有NAT)。但这当然是非典型的设置。
托马斯·沃德

1
@hello_there_andy仅确保客户机也已openssh-server安装在客户机上-这样您就可以接受SSH。除此之外,其余就是Windows联网/防火墙/配置。(因此,是超级用户,不要问Ubuntu)
Thomas Ward

3

你需要设置port forwardingWindows 10 VM player

你需要设置外部端口的Windows 10的机器上,这将是向前迈进的service portvirtual machineNAT network

此链接说明了如何做


1
尽管从理论上讲这可以回答问题,但通常仅回答链接问题。您最好包括链接的帖子中的相关信息,以防将来此类帖子消失。
托马斯·沃德

感谢您的评论,并在您的回答中提供详细信息。
亚龙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.