浅谈linux虚拟机不能识别网卡而无法上网的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈linux虚拟机不能识别网卡而无法上网的问题相关的知识,希望对你有一定的参考价值。
出现的现象:
[[email protected] net]# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:252 (252.0 b) TX bytes:252 (252.0 b)
1. 首先要把虚拟机设置成为桥接模式,这样就可以让虚拟机共享网络进行上网,并且在真实机中停止虚拟设备,设置方法: 控制面板----更改适配器设置----把以“V”开头的设备都停用,如果仍然没有ip,请继续如下操作。
2. 在虚拟机中查看当前的mac地址,如:00:0C:29:1C:48:30 ,这个mac就是你要加载的mac,正常情况下是eth0,但是不一定就是eth0,如果不是图形界面,可以用命令查看
#查看网卡是否加载驱动,如果没有驱动,则需要另外安装驱动
[[email protected] eth3]# dmesg |grep -i eth
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:1c:48:30
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000 0000:02:04.0: eth1: (PCI:66MHz:32-bit) 00:0c:29:1c:48:3a
e1000 0000:02:04.0: eth1: Intel(R) PRO/1000 Network Connection
udev: renamed network interface eth0 to eth3
udev: renamed network interface eth1 to eth4
e1000: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth3: no IPv6 routers present
#从以上信息可以看出eth3正在工作,需修改eth0的网卡配置信息,对应到eth3
#进入目录查看mac对应的是eth几
[[email protected] ~]# cd /sys/class/net
[[email protected] net]# ls
eth3 lo
#注意这里是eth几,后面所要修改的配置文件就是eth几
[[email protected] net]# cd eth3/
[[email protected] eth3]# ls
address
[[email protected] eth3]# cat address
00:0c:29:1c:48:30 #这个mac地址就是真正的mac地址
3. 修改网卡配置信息
#修改ifcfg-eth0
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ls
ifcfg-eth0
#注意,可能还有eth1或者eth2等,只修改一个,其余的eth配置文件删除,
#注意,ifcfg-lo 和其余的目录不能删除
#先把eth0更名为eth3(/sys/class/net 下是eth几,就写eth几)
[[email protected] network-scripts]# mv ifcfg-eth0 ifcfg-eth3
#查看信息
[[email protected] network-scripts]# cat ifcfg-eth3
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0c:29:fa:ed:77
IPV6INIT=yes
NM_CONTROLLED=yes
ONBOOT=no
TYPE=Ethernet
UUID="dde10f3b-43be-4016-85fd-215aedf35a70"
USERCTL=no
DNS1=202.106.0.20
PEERDNS=yes
#修改如下
[[email protected] network-scripts]# vi ifcfg-eth0
#删除HWADDR和UUID
#把ONBOOT值改成yes
#DEVICE的值根据 /sys/class/net 下是eth几,就写eth几
DEVICE=eth3
BOOTPROTO=dhcp
IPV6INIT=yes
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
DNS1=202.106.0.20
PEERDNS=yes
#保存退出
#修改70-persistent-net.rules
[[email protected] network-scripts]# cd /etc/udev/rules.d/
[[email protected] rules.d]# ls
60-raw.rules 70-persistent-cd.rules 70-persistent-net.rules
#编辑
[[email protected] rules.d]# vi 70-persistent-net.rules
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:1c:48:30", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
#注意,删除多余的PCI device配置信息,留下与mac地址相同的那一行,并且把NAME改一下
4. 重启服务
[[email protected] rules.d]# service network restart
Determining IP information for eth3... done.
#当你看到都ok的时候,恭喜你,ip就有了!
#如果没有成功,请重新检查以上步骤,肯定是配置有误,一定要注意mac和eth的对应关系。
#如笔者之前的eth0的mac地址是00:0C:29:1C:48:30,而eth1的mac地址是00:0C:29:1C:48:3a,只相差一位,因此务必要仔细核对。
以上是关于浅谈linux虚拟机不能识别网卡而无法上网的问题的主要内容,如果未能解决你的问题,请参考以下文章
我安装了windows虚拟网卡,无法获取IP地址,也不能上网了?