VirtualBox上Ubuntu 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的设置??

打开网络设置文件,如下命令:sudo vim /etc/network/interfaces,可以看到如下内容:

如果你没有瞎折腾,下面两行的eth5应该是eth0才是正常的。

如果想要设置静态IP的话,就要修改这个文件,当然一定要记得备份原文件。退出编辑器,备份命令:cp /etc/network/interfaces /etc/network/interfaces.bak,然后再编辑文件,把文件内容改为下面内容,

auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet dhcp 动态分配ip,注释掉
#静态ip地址
iface eth0 inet static
#ip地址
address 192.168.1.188
#子网掩码
netmask 255.255.255.0
#网关
gateway 192.168.1.2

最后就是启动服务了,命令如下:sudo service networking restart,显示ok不报错就行了,如果无法启动,尝试重启一下: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,打开编辑sudo vim /etc/resolv.conf,在文件末尾追加一行:nameserver 202.113.112.55,注意填上自己的域名服务器,域名服务器可以查看主机的,如下;

填完之后,重启一下 networking 服务使其生效,sudo /etc/init.d/networking restart,到这里,DNS服务也就设置好了,再在虚拟机里ping www.baidu.com没有问题了,如下图;

总结

在这种模式下,主机可以轻易访问虚拟机下的服务了,而在默认的NAT网络模式下,主机是不能访问虚拟机服务的。