轉自 http://blog.sina.com.cn/s/blog_484d87770102uxi6.html
使用VirtualBox很久了,很多用法都沒有深鑽,真的是不虛心學習啊。
由於默認的方式是用NAT來做虛擬機網絡的,因此如果從外網想訪問虛擬機的應用會比較麻煩。以前一直用橋接的方式,但IP有限,自己指定的IP可能會和局域網的IP沖突,而用DHCP方式獲取的IP又可能會發生變化導致不確定,怎么辦?網上查了一下,簡單有效的解決方法就是用VirtualBox的“端口映射”功能。
下面結合實例來講講怎么操做:
應用場景:要將虛擬機的Web 80端口從外面能訪問到。
1. 首先要知道虛擬機網卡的“大”IP,惦記網卡查看網絡共享中心。
看VirtualBox Host-Only Network的屬性,看到了吧分配給它的IP是 192.168.56.1,記住這個地址。
打開CMD窗口ping 192.168.56.1看到可以ping通
2.配置端口轉發,打開虛擬機,選中需要訪問的虛擬機,點“設置”-“網絡”
點“端口轉發”,添加Web80項目如圖所示,看到沒有主機IP填寫的是192.168.56.1,子系統IP需要在虛擬機的系統中通過命令查看如Linux中使用ifconfig查看獲知。
需要說明的是主機端口可以和子系統端口不一致,比如以上圖的Mysql為例,如果把主機的端口配置為6033的話,那么從外網訪問虛擬機的MySQL數據庫地址就是192.168.56.1 ,端口就是6033,虛擬機會自動轉發給子系統中的3306端口(MySQL的默認端口),這樣做有利於保護子系統的應用端口不直接暴露給外面。
再說一點題外話,連MySQL時,雖然創建的mysql賬號是允許外部連接的,但還是連不上,這時候進入/etc/mysql/my.cnf文件進行編輯。注釋掉 # bind-address = 127.0.0.1
然后重新啟動mysql,這樣就可以從外部連接上了。
另外補充一下,192.168.這個網段沒有起作用,需要查看虛擬機的網卡2是否設置為如下圖所示的"僅主機(Host-Only)適配器"模式。