咏远莈侑蔠嚸 發表於 2015-7-7 15:07:17

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

<p>VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络。当虚拟机启用NAT后,VirtualBox会自动在虚拟机和主机之间进行网络翻译,因此你不必在虚拟机和主机之间配置任何东西。这也意味着NAT中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如SSH)。</p>
<p>如果你想从VirtualBox的NAT环境的虚拟机,你可以在GUI或者命令行下启用VirtualBox NAT的端口转发。本篇教程将会演示如何通过启用22端口转发而从主机SSH连接到NAT环境的客户机。如果你先想要从HTTP访问NAT的客户机,用80端口代替22端口即可。<br />通过GUI配置VirtualBox端口转发</p>
<p>在VirtualBox中选择你想要访问的虚拟机,打开虚拟机的&ldquo;设置&rdquo;。点击左侧的&ldquo;网络&rdquo;菜单,点击网络适配选项的&ldquo;高级&rdquo;。<br /><img alt="201577151005530.jpg (640×462)" src="https://img.jbzj.com/file_images/article/201507/201577151005530.jpg?201567151016" /></p>
<p>点击&ldquo;端口转发&rdquo;按钮<br /><img alt="201577151026975.jpg (640×462)" src="https://img.jbzj.com/file_images/article/201507/201577151026975.jpg?201567151035" /></p>
<p>你会看到一个配置端口转发规则的窗口。点击右上角的&ldquo;添加&rdquo;图标。<br /><img alt="201577151048484.jpg (622×333)" src="https://img.jbzj.com/file_images/article/201507/201577151048484.jpg?201567151056" /></p>
<p>就会看到像下面那样的转发规则。</p>
<p>&nbsp;&nbsp;&nbsp; Name: SSH (可以是任意唯一名)<br />&nbsp;&nbsp;&nbsp; Protocol: TCP<br />&nbsp;&nbsp;&nbsp; Host IP: 127.0.0.1<br />&nbsp;&nbsp;&nbsp; Host Port: 2222 (任何大于1024未使用的端口)<br />&nbsp;&nbsp;&nbsp; Guest IP: 虚拟机IP<br />&nbsp;&nbsp;&nbsp; Guest Port: 22 (SSH 端口)<br /><img alt="201577151107432.png (622×333)" src="https://img.jbzj.com/file_images/article/201507/201577151107432.png?201567151117" /></p>
<p>端口转发的规则会自动在你启动虚拟机的时候启用。为了验证。可以在你启用虚拟机后检查端口2222是否被VirtualBox开启了。</p>
<p>&nbsp;&nbsp;&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode264">$ sudo netstat -nap | grep 2222 </div><br /><img alt="201577151126940.jpg (640×54)" src="https://img.jbzj.com/file_images/article/201507/201577151126940.jpg?201567151141" /></p>
<p>&nbsp;&nbsp;&nbsp; 现在端口转发可以使用了,你可以用下面的命令SSH到虚拟机。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode265">$ ssh -p 2222 &lt;login&gt;@127.0.0.1</div></p>
<p>发送到127.0.0.1:2222的登录请求会自动被VirtualBox翻译成10.0.2.15:22,这可以让你SSH到虚拟机中。<br />通过命令行配置VirtualBox端口转发</p>
<p>VirtualBox有一个称为VBoxManage的命令行管理工具。使用命令行工具,你也可以为你的虚拟机设置端口转发。</p>
<p>下面的命令会为IP地址为10.0.2.15的虚拟机设置一个名字为&quot;centos7&quot;的端口转发规则,SSH的端口号为22,映射到本地主机的端口为2222。规则的名字(本例中是SSH)必须是唯一的。</p>
<p>&nbsp;&nbsp;&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode266">$ VBoxManage modifyvm "centos7" --natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22" </div></p>
<p>规则创建之后,你可以用下面的命令来验证。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode267"> $ VBoxManage showvminfo "centos7" | grep NIC </div></p>
<p><img alt="201577151158748.jpg (640×247)" src="https://img.jbzj.com/file_images/article/201507/201577151158748.jpg?20156715125" /></p>
頁: [1]
查看完整版本: 从VirtualBox虚拟主机访问NAT客户机的方法