您的位置:首页 > 运维架构 > Linux

CentOS下找不到eth0设备的解决方法

2015-01-04 17:08 591 查看


问题描述:

      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      //查看网络服务状态

---------------------------------------------------------------------------------------------------

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

 

使用wmware安装了linux,安装成功后,使用的网卡是eth0,没有eth1。但是用过一段时间后,不知道为什么eth0无法使用,系统却自动生成了eth1网卡,这可以使用ifconfig命令看的到。

 

[user@localhost ~]$ ifconfig

eth1      Link encap:Ethernet  HWaddr 00:0C:29:A9:22:9D  

          inet addr:192.168.1.108  Bcast:192.168.1.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fea9:229d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:313 errors:0 dropped:0 overruns:0 frame:0

          TX packets:182 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:67356 (65.7 KiB)  TX bytes:26612 (25.9 KiB)

          Interrupt:19 Base address:0x2000 

 

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:1788 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1788 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:89560 (87.4 KiB)  TX bytes:89560 (87.4 KiB)

 

使用service network restart指令来重新启动网络服务时,会看到有eth0网卡不存在的提示。

 

经过百度,了解了一些信息,特此记录在此,以备忘。

 

为什么eth0会变成eth1?

 

很多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

 

# 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网卡的状态了。

-----------------------------------------------------------------------------------------------

设备 eth0 似乎不存在, 初始化操作将被延迟-hbhe0316-ChinaUnix博客

[root@server1 ~]# service network restart

关闭环回接口: [确定]

弹出环回接口: [确定]

弹出界面 eth0: 设备 eth0 似乎不存在, 初始化操作将被延迟。

[失败]

清空70-persistent-net.rules

[root@server1 ~]# vi /etc/udev/rules.d/70-persistent-net.rules

vi /etc/sysconfig/network-scripts/ifcfg-eth0

加入

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.1.210

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

[root@server1 ~]# service network restart

关闭环回接口: [确定]

弹出环回接口: [确定]

弹出界面 eth0: 活跃连接状态:激活的
转载请保留出处:http://www.01yun.com/other/20130713/578632.html

-----------------------------------------------------------------------------------

我的解决方法:进入/etc/sysconfig/network-scripts

vim ifcfg-eth0

<span style="color:#ff6666;">DEVICE=eth10 </span><span style="color:#333333;">
BOOTPROTO=none
IPV6INIT=yes
MTU=1500
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
DNS1=210.44.176.1
USERCTL=yes
PREFIX=24
IPADDR=192.168.12.203
NETMASK=255.255.255.0
GATEWAY=192.168.12.253
NAME=eth0</span>
只需要把DEVICE 的值改成硬件里面的值就行。

system-config-network

打开网络配置-》硬件-》设备

即是所需要的值。

更改后,执行

sevice network restart问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 网络