由于默認(rèn)的方式是用NAT來做虛擬機網(wǎng)絡(luò)的,因此如果從外網(wǎng)想訪問虛擬機的應(yīng)用會比較麻煩。以前一直用橋接的方式,但I(xiàn)P有限,自己指定的IP可能會和局域網(wǎng)的IP沖突,而用DHCP方式獲取的IP又可能會發(fā)生變化導(dǎo)致不確定,怎么辦?網(wǎng)上查了一下,簡單有效的解決方法就是用VirtualBox的“端口映射”功能。
下面結(jié)合實例來講講怎么操做:

應(yīng)用場景:要將虛擬機的Web 80端口從外面能訪問到。
1. 首先要知道虛擬機網(wǎng)卡的“大”IP,惦記網(wǎng)卡查看網(wǎng)絡(luò)共享中心。
看VirtualBox Host-Only Network的屬性,看到了吧分配給它的IP是192.168.56.1,記住這個地址。
打開CMD窗口ping 192.168.56.1看到可以ping通
2.配置端口轉(zhuǎn)發(fā),打開虛擬機,選中需要訪問的虛擬機,點“設(shè)置”-“網(wǎng)絡(luò)”
點“端口轉(zhuǎn)發(fā)”,添加Web80項目如圖所示,看到?jīng)]有主機IP填寫的是192 .168.56.1,子系統(tǒng)IP需要在虛擬機的系統(tǒng)中通過命令查看如Linux中使用ifconfig查看獲知。
需要說明的是主機端口可以和子系統(tǒng)端口不一致,比如以上圖的Mysql為例,如果把主機的端口配置為6033的話,那么從外網(wǎng)訪問虛擬機的MySQL數(shù)據(jù)庫地址就是192.168.56.1,端口就是6033,虛擬機會自動轉(zhuǎn)發(fā)給子系統(tǒng)中的3306端口(MySQL的默認(rèn)端口),這樣做有利于保護(hù)子系統(tǒng)的應(yīng)用端口不直接暴露給外面。
再說一點題外話,連MySQL時,雖然創(chuàng)建的mysql賬號是允許外部連接的,但還是連不上,這時候進(jìn)入/etc/mysql/my.cnf文件進(jìn)行編輯。注釋掉 # bind-address = 127.0.0.1
然后重新啟動mysql,這樣就可以從外部連接上了。
愛華網(wǎng)



