浅谈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虚拟机不能识别网卡而无法上网的问题的主要内容,如果未能解决你的问题,请参考以下文章

vmware虚拟机上的ubuntu为啥不能上网

如何解决VMware克隆虚拟机无法上网

vmware克隆linux虚拟机网卡无法上网的解决办法

我安装了windows虚拟网卡,无法获取IP地址,也不能上网了?

RTL8723BS linux版 求一份linux版的网卡驱动,我把平板电脑刷成了linux系统结果不能上网了

centos虚拟机桥接后无法上网(求助)