前一段时间,为了在虚拟机中的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的设置??
打开网络设置文件,如下命令:
1
sudo vim /etc/network/interfaces
可以看到如下内容:
如果你没有瞎折腾,下面两行的eth5应该是eth0才是正常的。
如果想要设置静态IP的话,就要修改这个文件,当然一定要记得备份原文件。退出编辑器,备份命令如下:
1
cp /etc/network/interfaces /etc/network/interfaces.bak
然后再编辑文件,把文件内容改为下面内容,
01
auto lo
02
iface lo inet loopback
03
04
auto eth0
05
#iface eth0 inet dhcp 动态分配ip,注释掉
06
#静态ip地址
07
iface eth0 inet static
08
#ip地址
09
address 192.168.1.188
10
#子网掩码
11
netmask 255.255.255.0
12
#网关
13
gateway 192.168.1.2
最后就是启动服务了,命令如下:
1
sudo service networking restart
显示ok不报错就行了,如果无法启动,尝试重启一下:
1
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,打开编辑;
1
sudo vim /etc/resolv.conf
在文件末尾追加一行:
1
nameserver 202.113.112.55