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

浅谈linux虚拟机没有ip的问题

2016-04-01 20:33 381 查看
出现的现象:
[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,只相差一位,因此务必要仔细核对。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息