virtualbox中ubuntu配置静态ip地址及DNS

时间:2022-08-16 02:24:53
环境: 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 loiface 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 loiface lo inet loopback
auto eth1iface eth1 inet staticaddress 192.168.1.115gateway 192.168.1.1netmask 255.255.255.0network 192.168.1.0broadcast 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.confecho "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地址的方法。无论对于实机安装还是虚拟机安装,上述两种方法均成立。