环境:
windows 7 SP1
virtualbox 4.1.4 r74291
ubuntu 11.10

virtualbox中安装ubuntu虚拟机之后,启动ubuntu,在virtualbox的“设备→分配网络连接→连接方式”中选择bridged adapter,这样设置之后虚拟机便有独立的局域网ip。

但可能是由于本人安装了多个虚拟机,且虚拟机多次开启和关闭,有时一个虚拟机启动后自动分配的ip地址会不一样,所以需要使用下面的方法来配置静态ip地址。

一、启动虚拟机,查看当前网络配置信息
命令行执行ifconfig,结果为:
tigerchan@tigerchan-VirtualBox:~$ 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配置方式
编辑配置文件:
tigerchan@tigerchan-VirtualBox:~$ 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地址
编辑配置文件,修改内容为:
tigerchan@tigerchan-VirtualBox:~$ 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配置文件:
tigerchan@tigerchan-VirtualBox:~$ 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:
tigerchan@tigerchan-VirtualBox:~$ 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地址的方法。无论对于实机安装还是虚拟机安装,上述两种方法均成立。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐