一、删除系统中中多余的ifcfg-eth0.bak
Centos系统更改网卡或网卡MAC地址后会出现个eth0.bak配置备份文件
解决方法:
/etc/sysconfig/networking/devices目录下,将ifcfg-eth0.bak删除
/etc/sysconfig/networking/profiles/default,将ifcfg-eth0.bak删除
/etc/sysconfig/network-scripts/,将ifcfg-eth0.bak删除
二、删除Linux系统中多余的网卡(例如:eth1)
/etc/modprobe.conf,删除alias eth1 XXXX
/etc/sysconfig/networking/devices目录下,将ifcfg-eth1删除
/etc/sysconfig/networking/profiles/default目录下,将ifcfg-eth1删除
/etc/sysconfig/network-scripts/目录下,将ifcfg-eth0.bak删除
三、检测网络接口(eth0)是否工作正常
/etc/modprobe.conf,该文件中必须有:alias eth0 XXX
/etc/sysconfig/hwconf,该文件中eth0对应的配置也必须正确
/etc/sysconfig/network-scripts目录下,必须有网络接口的配置文件:ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0文件中的配置是否正确,例如:DEVICE=eth0
-------------------------------------我是分割线---------------------------------------------
为什么eth0会变成eth1?
很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。
如何恢复到eth0?
在fedora/debian/unbantu系列系统中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:5a:6c:73", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:22:9d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
打开该文件,这时你会发现,里面有eth0,eth1两个网卡的信息,但实际上你ifconfig时只能发现eth1一个网卡的信息,这时因为eth0根本就不存在。
将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。
另外还有一个启动脚本文件/etc/sysconfig/network-scripts/ifcfg-eth0,该文件中的mac地址为原来 eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息修改为70- persistent-net.rules中的eth1的MAC地址,再次重启网络,就完全恢复到以前eth0网卡的状态了。
问题描述:
ifconfig命令无法找到eth0设备,且/etc/sysconfig/network-scripts/中只有ifcfg-lo文件,而没有ifcfg-eth0。
临时解决方法一:
使用命令ifconfig eth0 192.168.1.x可以正常设置eth0的IP,该方法仅为临时处理办法,系统重启后即失效了。
永久解决方法二:
1、在/etc/sysconfig/network-scripts/目录下新建ifcfg-eth0文件;
2、正确设置ifcfg-eth0的DEVICE、BOOTPROTO、ONBOOT、IPADDR、GATEWAY、DNS1、DOMAIN、NETMASK、NETWORK、NAME等等,比如:
DEVICE=eth0 物理设备名称
IPADDR=192.168.1.x IP地址
NETMASK=255.255.255.0 子网掩码
NETWORK=192.168.1.0 指定网络,通过IP地址和子网掩码自动计算得到
GATEWAY=192.168.1.1 网关地址
BROADCAST=192.168.1.255 广播地址,通过IP地址和子网掩码自动计算得到
ONBOOT=[yes|no] 引导时是否激活设备
USERCTL=[yes|no] 非ROOT用户是否可以控制该设备
BOOTPROTO=[none|static|bootp|dhcp] 引导时不使用协议|静态分配|BOOTP协议|dhcp协议
HWADDR=00:13:D3:27:9F:80 MAC地址
NAME=eth0 名称
3、经过以上设置,正常情况下是可以成功的,如果仍有问题,在文件/etc/rc.d/rc.local最后加入ifup eth0(/etc/rc.local脚本是在所有其它初始化脚本执行完毕后执行)。
4、重启电脑,OK。
其它网络控制命令:
ifdown eth0、ifconfig eth0 down //关闭网络
ifup eth0、ifconfig eth0 up //开启网络
-------------------------------------------------------
设置DNS 配置文件位置/etc/resolv.conf
-------------------------------------------------------
service network start //启动网络服务
service network stop //停止网络服务
srvice network restart //重启网络服务
service network status //查看网络服务状态