Linux的网卡由eth0变成了eth1或eth2,如何修复??

爱⌒轻易说出口 提交于 2020-04-04 12:29:28

背景:做linux下分布式测试的时候,重新安装了两个linux虚拟机,结果分布式脚本没有做好,分布式也没有做成。

          今天想练练linux命令,打开vmware,启动linux1 虚拟机,使用ifconfig -a,查看ip,结果没有网卡eth0显示,也没有ip,显示成了eth2。

          

          我想着其他虚拟机会不会这样呢,又启动了linux2 虚拟机,使用ifconfig -a,查看ip,结果显示网卡eth0了,但是没有显示ip。

       

           好气哦,以前用得好好的啊。。。。。开始问题查找~

一、使用ifconfig -a 显示了成了网卡eth2,但是没有ip显示  。

原因:

很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。

解决:

如何恢复到eth0?
在fedora中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /etc/udev/rules.d/70-persistent-net.rules

打开该文件,这时你会发现,里面有eth0,eth1,eht2三个网卡的信息,但实际上你ifconfig时只能发现eth2一个网卡的信息,这时因为eth0根本就不存在。

方法一:将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了。

方法二:由于系统默认的启动网卡是eth0,把eth2更改为eth0。调换下顺序。然后重启网络服务 :service network restart​

方法三:或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。(我用此方法)

修改完之后,启动eth0网卡:ifconfig  eth0 up 

然后重启网络服务:service network restart 

二、

 写一半发现各种方法并没有解决问题,靠,整了半天了~

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!