歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:從VirtualBox中從主機訪問NAT客戶機

Linux系統入門學習:從VirtualBox中從主機訪問NAT客戶機

日期:2017/2/28 14:25:22   编辑:Linux教程

提問: 我有一台運行在VirtualBox上的使用NAT的虛擬機,因此虛擬機會被VirtualBox分配一個私有IP地址(10.x.x.x)。如果我想要從主機SSH到虛擬機中,我該怎麼做?

VirtualBox對虛擬機支持幾種不同的網絡方式,其中一種是NAT網絡。當虛擬機啟用NAT後,VirtualBox會自動在虛擬機和主機之間進行網絡翻譯,因此你不必在虛擬機和主機之間配置任何東西。這也意味著NAT中的虛擬機對於外部網絡以及主機本身是不可見的。這會在你想要從主機訪問虛擬機時會產生問題(比如SSH)。

如果你想從VirtualBox的NAT環境的虛擬機,你可以在GUI或者命令行下啟用VirtualBox NAT的端口轉發。本篇教程將會演示如何通過啟用22端口轉發而從主機SSH連接到NAT環境的客戶機。如果你先想要從HTTP訪問NAT的客戶機,用80端口代替22端口即可。

通過GUI配置VirtualBox端口轉發

在VirtualBox中選擇你想要訪問的虛擬機,打開虛擬機的“設置”。點擊左側的“網絡”菜單,點擊網絡適配選項的“高級”。

點擊“端口轉發”按鈕

你會看到一個配置端口轉發規則的窗口。點擊右上角的“添加”圖標。

就會看到像下面那樣的轉發規則。

  • Name: SSH (可以是任意唯一名)
  • Protocol: TCP
  • Host IP: 127.0.0.1
  • Host Port: 2222 (任何大於1024未使用的端口)
  • Guest IP: 虛擬機IP
  • Guest Port: 22 (SSH 端口)

端口轉發的規則會自動在你啟動虛擬機的時候啟用。為了驗證。可以在你啟用虛擬機後檢查端口2222是否被VirtualBox開啟了。

  1. $ sudo netstat -nap | grep 2222

現在端口轉發可以使用了,你可以用下面的命令SSH到虛擬機。

  1. $ 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)必須是唯一的。

  1. $ VBoxManage modifyvm "centos7"--natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22"

規則創建之後,你可以用下面的命令來驗證。

  1. $ VBoxManage showvminfo "centos7"| grep NIC

Copyright © Linux教程網 All Rights Reserved