Centos下找不到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 名稱

    另:修改ip、網關、廣播地址規則參考:http://blog.csdn.net/iycao/article/details/23671557,

       BROADCAST 的IP值要和VMNET8中的ip保持一致且最后一位必須為255

          IPADDR的IP值要和VMNET8中的ip保持一致且最后一位必須為1~255的任意值

          GETWAY的IP值要和VMNET8中的ip保持一致且最后一位為2

          eg:

            我本機的ip為192.168.78.1,那么正確的配置為:

            BROADCAST=192.168.78.255

            IPADDR=192.168.78.1

            GETWAY=192.168.78.2

      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網卡的狀態了(如果不行,就reboot系統后再重啟網絡即可解決)。
轉自:http://blog.csdn.net/eazycode/article/details/42394659,感謝分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM