欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

从VirtualBox虚拟主机访问NAT客户机的方法

程序员文章站 2022-04-19 13:41:43
这篇文章主要介绍了从VirtualBox虚拟主机访问NAT客户机的方法,即启用端口通过SSH连接客户机的方法,需要的朋友可以参考下... 15-07-07...

virtualbox对虚拟机支持几种不同的网络方式,其中一种是nat网络。当虚拟机启用nat后,virtualbox会自动在虚拟机和主机之间进行网络翻译,因此你不必在虚拟机和主机之间配置任何东西。这也意味着nat中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如ssh)。

如果你想从virtualbox的nat环境的虚拟机,你可以在gui或者命令行下启用virtualbox nat的端口转发。本篇教程将会演示如何通过启用22端口转发而从主机ssh连接到nat环境的客户机。如果你先想要从http访问nat的客户机,用80端口代替22端口即可。
通过gui配置virtualbox端口转发

在virtualbox中选择你想要访问的虚拟机,打开虚拟机的“设置”。点击左侧的“网络”菜单,点击网络适配选项的“高级”。
从VirtualBox虚拟主机访问NAT客户机的方法

点击“端口转发”按钮
从VirtualBox虚拟主机访问NAT客户机的方法

你会看到一个配置端口转发规则的窗口。点击右上角的“添加”图标。
从VirtualBox虚拟主机访问NAT客户机的方法

就会看到像下面那样的转发规则。

    name: ssh (可以是任意唯一名)
    protocol: tcp
    host ip: 127.0.0.1
    host port: 2222 (任何大于1024未使用的端口)
    guest ip: 虚拟机ip
    guest port: 22 (ssh 端口)
从VirtualBox虚拟主机访问NAT客户机的方法

端口转发的规则会自动在你启动虚拟机的时候启用。为了验证。可以在你启用虚拟机后检查端口2222是否被virtualbox开启了。

   

复制代码
代码如下:
$ sudo netstat -nap | grep 2222

从VirtualBox虚拟主机访问NAT客户机的方法

    现在端口转发可以使用了,你可以用下面的命令ssh到虚拟机。

    

复制代码
代码如下:
$ ssh -p 2222 <login>@127.0.0.1

发送到127.0.0.1:2222的登录请求会自动被virtualbox翻译成10.0.2.15:22,这可以让你ssh到虚拟机中。
通过命令行配置virtualbox端口转发

virtualbox有一个称为vboxmanage的命令行管理工具。使用命令行工具,你也可以为你的虚拟机设置端口转发。

下面的命令会为ip地址为10.0.2.15的虚拟机设置一个名字为"centos7"的端口转发规则,ssh的端口号为22,映射到本地主机的端口为2222。规则的名字(本例中是ssh)必须是唯一的。

   

复制代码
代码如下:
$ vboxmanage modifyvm "centos7" --natpf1 "ssh,tcp,127.0.0.1,2222,10.0.2.15,22"

规则创建之后,你可以用下面的命令来验证。

    

复制代码
代码如下:
$ vboxmanage showvminfo "centos7" | grep nic

从VirtualBox虚拟主机访问NAT客户机的方法