本人近期在学习韦东山老师的嵌入式Linux教程。本来是在virtualbox上装的Ubuntu16.04,64位虚拟机,一步一步按照老师走,当学到移植linux内核部分,因为我装的是16.04的机器,外加上是64位的,使用起来困难重重,特别是到了内核这部分,make工具都是远远新于当年时候的版本,也有一些其他的不兼容的地方。
本着先理解学习内核的目的,干脆用老师提供的虚拟机显得更节省时间。等功夫深一点的时候,再去研究工具以及环境的搭建。
韦老师提供的是基于VMware+Ubuntu9.10的环境。因为VMwareworkstation是收费的,于是我选用免费的VMwarePlayer,简单轻巧,先用着,等不行再说。
进虚拟机一切顺利,网络改成桥接模式,进去之后发现不能上网。
进终端ifconfig查看网络设备是eth3,并且没有指定ip
于是乎进设置将dhcp改为手动指定,并指定如图。
完了之后,还是不能上网,去虚拟机设置查看,并无异常的地方。
去网上查找,有提到:
“但当主机上存在多个物理网卡或虚拟网卡时, 一旦其中的某个网卡发生断开或禁用/启用之类的操作, 则虚拟机中Bridged类型网卡的IP地址往往就会出现ping不通的现象, 一旦出现这种情况, 如果不明白其根本原因, 往往就只能重启主机才能解决问题, 非常麻烦.”
于是乎,点开“配置适配器”,发现这三个网卡都打着钩钩呢,想起我前面禁用过这个网卡,似乎找到点眉目。马上只保留真实的网卡,如图所示。
然后,主机能ping通虚拟机了,虚拟机也能ping通网关和外网了,唯独不能ping通主机。
韦老师视频里也有遇到ping不通的现象,韦老师也没有去深究。视频中是这样解决的。
sudo ifconfig eth1 down(禁用网卡)
sudo ifconfig eth1 up(启用网卡)
sudo ifconfig eth1 192.168.1.17(类似于临时指定一个ip)
第一遍没有解决,第二遍好了。我依样画葫芦,画了N遍仍旧不行,于是再去网上寻找答案。
网上有人说关掉ARP防火墙就好了,可是我的某卫士根本就没有开这个功能,再找,于是找到下面这篇文章。
《虚拟机可上外网,可ping通网关,但是ping不通主机,主机却可以ping通虚拟机》:
按照文章里描述的,解决了!