使用虛擬機常常是為了調(diào)試服務(wù)器,因為在桌面系統(tǒng)安裝服務(wù)程序,一來容易有安全問題,更重要是容易拖慢系統(tǒng)。
VirtualBox作為一款輕快的開源虛擬機軟件,自從被Sun公司收購后,更新相當頻繁,功能也逐漸完善,比起VMware動輒幾百M的安裝文件,VirtualBox幾十M的身材而功能絲毫不在VMware之下,而且性能遠遠高出VMware。
如果把虛擬機作為服務(wù)器調(diào)試工具,VM默認是使用橋接方式連接虛擬機和
主機,安裝完后虛擬機直接對主機可見,調(diào)試很方便,但是VBox則默認是NAT方式,主機完全訪問不了虛擬機。
除了設(shè)置VBox為橋接方式外(有點麻煩),另一更加簡捷的方式是給虛擬機開端口。這和使用家用路由器映射端口原理是一樣的,經(jīng)過路由器后,局域網(wǎng)內(nèi)的機器對公網(wǎng)外是不可見的,但是通過添加端口映射,公網(wǎng)就可以訪問到內(nèi)網(wǎng)的機器。
VirtualBox 的User Manual(2.1.4版)在6.4.1介紹了這個方法:使用VBox自帶的VBoxManage工具設(shè)置端口映射。下面是介紹一個例子:
主機:Ubuntu 8.10
虛擬機:Win XP + phpStudy 套件(Apache、MySQL….),Apache在81端口提供服務(wù)。
配置后通過主機的8080訪問虛擬機:localhost:8080。
在虛擬機關(guān)機情況下,在主機終端執(zhí)行:
VBoxManage setextradata “xp” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/Protocol” TCP
VBoxManage setextradata “xp” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/GuestPort” 81
VBoxManage setextradata “xp” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/HostPort” 8080
VBoxManage是VirtualBox的配置工具,setextradata只是其中一個方法。”xp”是虛擬機的名稱,而”VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/…”是該虛擬機的一個屬性,其中/web/是可以任意設(shè)置的名稱。如果虛擬機用的虛擬網(wǎng)卡不是默認的PCNet,而是用了Intel PRO/1000,則需把路徑中的“pcnet”替換為“e1000”,同樣地,如果你為虛擬機配置了n個網(wǎng)卡,則要把/0/換成相應(yīng)的序列。
重新運行虛擬機,在Host的瀏覽器里敲入
https://localhost:8080/phpinfo.php,虛擬機里面的php環(huán)境顯示出來了。注意此時對主機網(wǎng)絡(luò)內(nèi)的其他機器,也可以通過本機的8080端口訪問到虛擬機的web服務(wù)(當然,前提是主機的
防火墻沒有攔截該端口)。不過無法為主機小于1024端口進行映射(設(shè)了之后虛擬機啟動報錯),這涉及到Unix/Linux的保護措施,可能在root賬戶下可用。有興趣的在Windows 平臺試試,可能沒此限制。
注意在虛擬機運行的時候這樣配置是無效的,必須重新啟動一次,休眠(save state)了再開也可以。
如果想刪除這些映射,同樣執(zhí)行以上的命令,而把最后的命令值留空即可,如:
VBoxManage setextradata “xp” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/web/Protocol”
VBoxManage工具是VirtualBox自帶的配置工具,不論是Linux、Mac還是Windows平臺下,都有這個工具,使用方法都是一樣的。
以上就是小編今天分享的全部內(nèi)容。