无法启动CentOS 7“networking”服务

禁用并删除“NetworkManager”服务后,无法启动CentOS 7“networking”服务。 当我检查networking服务状态时,出现以下错误:

#systemctl status network.service network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network) Active: failed (Result: exit-code) since Fri 2015-01-16 22:30:46 GMT; 38s ago Process: 4857 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE) Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists Jan 16 22:30:46 localhost.localdomain systemd[1]: network.service: control process exited, code=exited status=1 Jan 16 22:30:46 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking. Jan 16 22:30:46 localhost.localdomain systemd[1]: Unit network.service entered failed state. 

在较早的CenOS中,从“NetworkManager”服务切换到networking服务时似乎没有任何问题。 任何想法是什么原因引起的问题,以及如何解决它?

注:我用yum擦除删除networkingpipe理服务。

这里是附加的信息问:

 /etc/sysconfig/network-script/ifcfg-enp8s0 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=enp8s0 UUID=453a07fe-1b07-4f29-bc32-f2168e50706a ONBOOT=yes HWADDR=XXXXXXXXXXX MACADDR=XXXXXXXXXX PEERDNS=yes PEERROUTES=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 

 /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 

 /etc/resolv.conf ; generated by /usr/sbin/dhclient-script search customer.marples.midcity.lan nameserver 10.241.128.1 

在Centos7.0中,禁用NetworkManager将为NetworkManagerconfiguration一个正在运行的DHCP客户端。 这会导致错误消息RTNETLINK answers: File exists network服务启动时RTNETLINK answers: File exists

过时的dhclient进程有额外的“好处”,当租约到期时,你的dhclient会窒息,因为它不能到达N​​etWorkManager,从而删除你的IP地址。

如果你grep它,你会看到它指向一个NetWorkManagerconfiguration文件。

 [root@host ~]# ps -ef | grep dhc root 1865 792 0 Apr28 ? 00:00:00 /sbin/dhclient -d -sf \ /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eno1.pid -lf\ /var/lib/NetworkManager/dhclient-c96e56d3-a4c9-4a87-85ca-93dc0ca268f2-eno1.lease\ -cf /var/lib/NetworkManager/dhclient-eno1.conf eno1 

所以你可以做的是杀死dhclient ,然后才开始你的networking服务。

IP冲突也会导致这个错误。 试试: systemctl stop network ,然后ifup eth0

没有从DNS获取IP也会导致这个错误,因为我刚刚发现。 事实上,它看起来像networking的任何错误将导致这个错误。 这似乎是CentOS 7的一个问题,因为它在这里给出了一个非常糟糕的错误。

因为它已经被识别 – 这个错误在设置networking时popup:IP冲突,路由问题等。

看看你的网关设置,以确认你的网关设置正确,事情是他们需要与/etc/syscofig/network和每个/etc/sysconfig/network-scripts/ifcfg-*寻找重复的IP,路由集通过/etc/sysconfig/network-scripts/route-*如果内存为我提供正确的网关,现在可以在ifcfg-*route-*文件中设置。 所以确认没有重复或重叠。

如果您手动configuration未连接到networking的接口,似乎也会发生这种情况。

查看networking脚本是否没有其他可能导致network.service崩溃的接口

做一个ifconfig并写下接口。 与networking脚本中的文件进行比较。 如果networking脚本中的文件多于ifconfig中的接口,则可以删除其他无用的文件,然后执行systemctl restart network。

在克隆虚拟服务器后出现此错误,克隆被赋予一个新的硬件地址(MAC),而networking适配器configuration仍然有旧的。

该行看起来像:HWADDR = 00:00:00:00:00:00

我今天在CentOS 7.2克隆的虚拟机上遇到了这个问题。 这是我如何解决它。

 systemctl disable NetworkManager systemctl enable network 

通过命令/sbin/ifconfig -a查找接口的MAC地址,并将其追加到/etc/sysconfig/network-scripts/ifcfg-<interface_name> 。 您可以使用下面的命令为第一个界面。

 nic_file=`ls /etc/sysconfig/network-scripts/ifcfg-e*` ifconfig -a | grep ether | awk '{ print $2 }' | sed 's/.*/HWADDR=&/' >> ${nic_file} 

然后reboot重启服务器

我遇到了这个问题,服务器不断给我RTNETLINK answers: File exists即使删除networkingpipe理器和三重检查我的networkingconfigurationRTNETLINK answers: File exists

看来,一个IP在另一台服务器上,并且服务器过滤ICMP(所以没有ping),我尝试的第一件事情。 所以不要依靠ping来testing一个IP是否正常!

启动时,networking脚本发出这个命令(更改你的dev和ip)

 /sbin/arping -c 2 -w 3 -D -I eth0 10.196.132.206 

这告诉我们一个mac地址与这个IP相关联,并且失败了networking脚本( ifup或者systemctl start network