VirtualBox中ubuntu 12.04 server網絡問題
前一段時間,為了在虛擬機中的ubuntu搭建開源博客,由於virtualbox的默認NAT上網方式,是不支持從主機到虛擬機的訪問的。所以,我就把默認上網的方式改成了host-only adapter主機模式,默認訪問192.168.56.101就可以從主機訪問到虛擬機了。
後來不知道怎麼鼓搗的,就出現問題了,列舉問題如下:
1、輸入ifconfig命令,eth0網卡消失了??
這個問題我現在還是“不明覺厲”,反正就是消失了,但是如果你嘗試一下ifconfig -a 命令你就會發現出現eth1 or eth2 or eth3...很不幸,當我輸入ifconfig -a的時候,它已經到eth5了,我也不知道為什麼我的網卡編號從eth0到了eth5了?還有,怎麼能夠再變會eth0??
如果ifconfig命令沒有出現eth網卡的信息,那麼你的網絡配置肯定出了問題,要麼設定靜態IP,要麼保持動態自動獲取IP,配置文件的設置,請接著往下看。
2、靜態IP的設置??
打開網絡設置文件,如下命令:
1
sudo vim /etc/network/interfaces
可以看到如下內容:
如果你沒有瞎折騰,下面兩行的eth5應該是eth0才是正常的。
如果想要設置靜態IP的話,就要修改這個文件,當然一定要記得備份原文件。退出編輯器,備份命令如下:
1
cp /etc/network/interfaces /etc/network/interfaces.bak
然後再編輯文件,把文件內容改為下面內容,
01
auto lo
02
iface lo inet loopback
03
04
auto eth0
05
#iface eth0 inet dhcp 動態分配ip,注釋掉
06
#靜態ip地址
07
iface eth0 inet static
08
#ip地址
09
address 192.168.1.188
10
#子網掩碼
11
netmask 255.255.255.0
12
#網關
13
gateway 192.168.1.2
最後就是啟動服務了,命令如下:
1
sudo service networking restart
顯示ok不報錯就行了,如果無法啟動,嘗試重啟一下:
1
sudo shutdown -r now
現在輸入ifconfig,就會顯示eth網卡的信息了,而且可以很清楚的看到虛擬機的ip地址了。
3、virtualbox的橋接網絡模式(Bridged Adapter)的設置??
首先你要知道橋接模式的基本概念,橋接模式下,你的虛擬機就相當於局域網裡的一台獨立的電腦,只要與主機處於同一個網段,就可以相互訪問。詳細請看: VirtualBox的四種網絡接入模式
根據橋接的介紹,虛擬機就是獨立於主機的一台機子,要有自己的IP,並且同主機處於同一個局域網內就可以實現相互訪問。
由於我這裡是校園網,不能自動分配IP,也就是要設置固定IP才能上網,首先查看我的主機上的IP,如下圖;
然後,根據主機上的IP,找到一個可用的IP,為虛擬機設置固定IP,如何設置上面已經介紹了。如下圖,虛擬機裡的靜態IP配置文件:
設置完畢了,現在就開始測試,主機與虛擬機之間可不可以ping得通?虛擬機可不可以上網?
第一步,測試虛擬機能不能上網;
主機ping www.baidu.com,如下圖;
可以看到百度的IP,然後在虛擬機裡ping百度的ip地址,如下圖;
可以看到虛擬機可以ping得通百度的IP,證明連上網了。
第二步,測試主機能不能ping通虛擬機;
根據上面的介紹,主機的IP:10.1.14.59;虛擬機的IP:10.1.14.50,測試如下;
可以看到主機可以ping通虛擬機。
第三步,測試虛擬機能否ping通主機;
這一步注意要關閉掉windows7 or windows8的防火牆,不然會出現ping不通的情況。
設置好了之後,馬上測試了一下,之前搭的開源博客是否能訪問?
很nice,可以訪問了,不用再設置host-only網絡模式了。
4、DNS設置
可能你已經發現,為什麼要ping百度的IP呢,而不直接和主機一樣,ping www.baidu.com呢,因為我們還沒有設置DNS呢,如果ping www.baidu.com的話,肯定會報錯的。
接下來,手動設置一下 DNS,首先還是要找到配置文件在哪裡,dns的配置文件是/etc/resolv.conf,打開編輯;
1
sudo vim /etc/resolv.conf
在文件末尾追加一行:
1
nameserver 202.113.112.55
注意填上自己的域名服務器,域名服務器可以查看主機的,如下;
填完之後,重啟一下 networking 服務使其生效,命令如下;
1
sudo /etc/init.d/networking restart
到這裡,DNS服務也就設置好了,再在虛擬機裡ping www.baidu.com就沒有問題了,如下圖;
總結:在這種模式下,主機可以輕易訪問虛擬機下的服務了,而在默認的NAT網絡模式下,主機是不能訪問虛擬機服務的。