VirtualBox 是一款免费虚机软件。在用户使用它安装了 linux 以后,它默认只提供了控制台的管理画面。
直接使用控制台管理 Linux 没有使用诸如 putty 或者 vscode 这样的 ssh 远程管理工具方便。那么可不可以直接使用 ssh 访问 VirtualBox 上的 Linux 呢?
我们可以先检查我们的 VirtualBox。下面的举例使用的是 Debian 11 的虚机,您可以根据您的 Linux 版本做命令的调整。
检查 ip 地址
输入以下命令
ip address
你可能会看到类似于下面的输出结果:
这里的第一个地址 127.0.0.1 是一个不能被外部访问的。第2个地址 10.0.2.15 是 VirtualBox 默认网卡给出的网址。如果我们使用 ssh 去访问这个地址是连接不上的。
这是因为 VirtualBox 默认给我们的网卡设置的是 NAT 方式。
我们可以通过检查虚机的配置 (settings) 看到这点。
解决方案
我们把上面的配置改为 bridge adapter 其他不变。如下图所示:
然后重新启动虚机。比如在 Debian 系统里输入以下命令:
shutdown -r now
然后重新检查虚机的 IP
ip address
可以类似于下面的画面
可以看到 IP 地址已经改变了。这个时候再尝试连接第2个网卡的地址,在上例中是 192.168.1.5 应该就可以连接上了。
小结
VitualBox 默认的网卡是 NAT 模式。从外部无法连接到虚机,通过把网卡模式改为 Bridge Adapter 就可以通过 ssh 连接到虚机了。