1. 程式人生 > >virtualbox中ubuntu配置靜態ip地址及DNS

virtualbox中ubuntu配置靜態ip地址及DNS

環境: windows 7 SP1 virtualbox 4.1.4 r74291 ubuntu 11.10

virtualbox中安裝ubuntu虛擬機器之後,啟動ubuntu,在virtualbox的“裝置→分配網路連線→連線方式”中選擇bridged adapter,這樣設定之後虛擬機器便有獨立的區域網ip。

但可能是由於本人安裝了多個虛擬機器,且虛擬機器多次開啟和關閉,有時一個虛擬機器啟動後自動分配的ip地址會不一樣,所以需要使用下面的方法來配置靜態ip地址。 一、啟動虛擬機器,檢視當前網路配置資訊 命令列執行ifconfig,結果為: [email protected]:~$ ifconfig  eth1      Link encap:乙太網  硬體地址 08:00:27:e0:0a:ff             inet 地址:192.168.1.115  廣播:192.168.1.255  掩碼:255.255.255.0           UP BROADCAST RUNNING MULTICAST  MTU:576  躍點數:1           接收資料包:2583 錯誤:0 丟棄:0 過載:0 幀數:0           傳送資料包:2235 錯誤:0 丟棄:0 過載:0 載波:0           碰撞:0 傳送佇列長度:1000            接收位元組:980042 (980.0 KB)  傳送位元組:262630 (262.6 KB) lo        Link encap:本地環回             inet 地址:127.0.0.1  掩碼:255.0.0.0           inet6 地址: ::1/128 Scope:Host           UP LOOPBACK RUNNING  MTU:16436  躍點數:1           接收資料包:242 錯誤:0 丟棄:0 過載:0 幀數:0           傳送資料包:242 錯誤:0 丟棄:0 過載:0 載波:0           碰撞:0 傳送佇列長度:0            接收位元組:292381 (292.3 KB)  傳送位元組:292381 (292.3 KB) 目前已配置了網絡卡eth1。 好吧,那此次配置的靜態ip就用192.168.1.115。 二、修改配置檔案
ubuntu網路配置檔案為:/etc/network/interfaces DNS配置檔案為:/etc/resolv.conf 下面介紹設定DHCP(設定之後,ip地址仍不固定)和靜態ip兩種方法。 1、DHCP配置方式 編輯配置檔案: [email protected]:~$ sudo vi /etc/network/interfaces  auto lo iface lo inet loopback 在檔案中追加一下內容: auto eth1
iface eth1 inet dhcp 重啟網路使配置生效: sudo /etc/init.d/networking restart 重啟之後網路及DNS均能正常使用。 2、配置靜態ip地址
編輯配置檔案,修改內容為: [email protected]:~$ sudo vi /etc/network/interfaces  auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 192.168.1.115 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 當然,地址、閘道器、掩碼、子網、廣播地址根據自己的需要進行配置。 此時,重啟網路之後執行ping 119.75.218.70(百度)能ping通,而執行ping www.baidu.com不能ping通,因為沒有設定DNS伺服器。 3、配置DNS
修改DNS配置檔案: [email protected]:~$ sudo vi /etc/resolv.conf  nameserver x.x.x.x nameserver x1.x1.x1.x1 x.x.x.x為首選DNS伺服器地址,x1.x1.x1.x1為備用DNS伺服器地址。可以設定一個或多個。 儲存後重啟: sudo /etc/init.d/networking restart 完成配置靜態ip地址。 但是還有一個問題,每次重啟ubuntu,DNS配置會被清除,必須重新配置才能使用DNS。於是,期望在網上尋求答案。但是,很遺憾,搜尋到的幾個方法根本行不通,而且同一篇文章被轉發了無數次,卻有一些人在ubuntu和chinaunix的論壇上抱怨網上的方法根本不起作用,不知那些轉發文章的人是否自己驗證過或者去尋求正確的答案。 於是,自己想了一個簡單的方法解決問題,即是在啟動指令碼/etc/rc.local中將DNS伺服器地址寫入/etc/resolv.conf: [email protected]:~$ sudo vi /etc/rc.local   #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. echo "nameserver x.x.x.x" >/etc/resolv.conf echo "nameserver x1.x1.x1.x1" >>/etc/resolv.conf exit 0 在檔案中添加了兩行echo,儲存並關閉檔案。 重啟系統後,DNS也可以正常使用了。夠簡單吧。 不過,當然,你要保證/etc/rc.local可執行並且執行正確。 我曾遇到這樣的問題:按照上面的過程配置了,但是啟動後並沒有執行兩條echo命令。檢查rc.local許可權發現所有使用者具有可執行許可權。之後發現,rc.local的第一行是#!/bin/sh -e,其中-e選項表示只要任何一條命令出錯,指令碼就會停止執行。哦,原來是在兩條echo命令前的一條命令執行出錯了!解決方法有兩種,一是刪除-e,二是將兩條echo命令移到執行錯誤的命令之前。 配置終於perfect了! 最後, 如果安裝ubuntu後無法連網,可以使用上述DHCP和靜態ip地址的方法。無論對於實機安裝還是虛擬機器安裝,上述兩種方法均成立。