淺談linux虛擬機沒有ip的問題

出現的現象:

[root@cos 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. 以上情況可能是續集沒有獲取到dhcp分配的ip,也有可能是網卡配置文件出錯。


2. 在虛擬機中查看當前的mac地址,如:00:0C:29:1C:48:30  ,這個mac就是你要加載的mac,正常情況下是eth0,但是不一定就是eth0,如果不是圖形界面,可以用命令查看

#查看網卡是否加載驅動,如果沒有驅動,則需要另外安裝驅動

[root@cos 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幾

[root@cos ~]# cd /sys/class/net             

[root@cos net]# ls

eth3  lo

#注意這裏是eth幾,後面所要修改的配置文件就是eth幾

[root@cos net]# cd eth3/

[root@cos eth3]# ls

address          

[root@cos eth3]# cat address 

00:0c:29:1c:48:30          #這個mac地址就是真正的mac地址


3. 修改網卡配置信息

#修改ifcfg-eth0

[root@cos ~]# cd /etc/sysconfig/network-scripts/

[root@cos network-scripts]# ls

ifcfg-eth0

#注意,可能還有eth1或者eth2等,只修改一個,其餘的eth配置文件刪除,

#注意,ifcfg-lo 和其餘的目錄不能刪除

#先把eth0更名爲eth3(/sys/class/net 下是eth幾,就寫eth幾)

[root@cos network-scripts]# mv ifcfg-eth0 ifcfg-eth3 

#查看信息

[root@cos 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


#修改如下

[root@cos 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

[root@cos network-scripts]# cd /etc/udev/rules.d/

[root@cos rules.d]# ls

60-raw.rules  70-persistent-cd.rules  70-persistent-net.rules

#編輯

[root@cos 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. 重啓服務

[root@cos 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,只相差一位,因此務必要仔細覈對。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章