如何设置运行在Virtualbox内的Ubuntu虚拟机的静态ip地址

今天想要研究mini2440的nfs,但是发现ubuntu的虚拟机每次重启之后得到的ip地址都不一样,因此nfs参数每次都得重新设置,太不方便了。得想个办法把虚拟机的ip地址给弄成静态固定的。

首先说下我的系统环境:

  • 外部主机:win10;
  • 开发环境:virtualbox 5.20;
  • 虚拟机:ubuntu 12.04;
  • 网络接入模式:主机与开发板使用局域网接入同一个网络(路由器)。virtualbox中设置虚拟机的网卡为桥接模式,使用与外部主机不一样的独立的IP地址接入网络;

在虚拟机中查看网络参数如下:

leon@Ubuntu:~$ ifconfig
eth3      Link encap:以太网  硬件地址 08:00:27:ea:ba:41  
          inet 地址:192.168.100.120  广播:192.168.100.255  掩码:255.255.255.0
          inet6 地址: fe80::a00:27ff:feea:ba41/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:73 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:119 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:5728 (5.7 KB)  发送字节:14065 (14.0 KB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:34 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:34 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:2300 (2.3 KB)  发送字节:2300 (2.3 KB)

于是百度,如何设置ubuntu 12.04的静态ip地址。不少博客里都有类似的方案。比如(Ubuntu Server 12.04(14.04) 静态IP简洁配置),(ubuntu12.04配置静态IP及设置DNS)。他们的大致思路如下:

1、设置静止ip参数。

leon@Ubuntu:~$ sudo vi /etc/network/interfaces

将整个文件的内容替换成:

  auto lo
  iface lo inet loopback


  auto eth3                      // 注意这里的eth3要与你的实际网卡序号一致
  iface eth3 inet static         // 注意这里的eth3要与你的实际网卡序号一致
  address 192.168.100.120        // IP地址
  netmask 255.255.255.0          // 掩码
  gateway 192.168.100.1          // 网关
  broadcast 192.168.100.255      // 广播地址

2、手动设置DNS服务器:

leon@Ubuntu:~$ sudo vi /etc/resolvconf/resolv.conf.d/base

将整个文件的内容替换成:

nameserver 218.85.152.99
nameserver 218.85.157.99

3、使用以下命令重启网络,或者直接重启系统。

sudo /etc/init.d/networking restart

4、查看结果。

大多数文章中,完成上述步骤之后,就成功了。不过,遗憾的是,我没能成功,原因未知。

不过,部分文章中对于步骤2的命令有些异议,有人写的是修改base文件,有人写的是修改tail文件,使用以下命令:

leon@Ubuntu:~$ sudo vi /etc/resolvconf/resolv.conf.d/tail

反正我两个都试过了。都不行……..

看来这个方法是不行了,只能再想别的办法了。


经过我自己的反复尝试,发现至少有以下2个办法可以实现静态IP的配置:

办法1:在路由器的配置界面下,增加一个MAC地址与IP地址绑定的功能,将mini2440开发板的MAC地址绑定成一个固定的IP地址。这样的话,虚拟机每次重启都会被路由器配置成一个固定的ip地址。

办法2:直接在linux(ubuntu)系统中设置网络连接的参数,如下图所示。

如何设置运行在Virtualbox内的Ubuntu虚拟机的静态ip地址_第1张图片

如何设置运行在Virtualbox内的Ubuntu虚拟机的静态ip地址_第2张图片

不管如何重启,ubuntu将始终保持在这个ip地址不变。

搞定,收工!


特别说明:

经过反复尝试,我最终还是采用了方法2,建议大家也采用方法2。因为方法1在我第三次重启之后就失效了,虚拟机的ip地址确实是被固定住了没错,但是ubuntu重启之后就再也无法连入外部网络,开发板也无法连入ubuntu,ping都ping不通,原因未知。现将该问题记录在这里,待以后有空时再细查。

你可能感兴趣的:(玩转VirtualBox)