无法启动 CentOS 7 “网络”服务

Gaz*_*zel 26 linux centos service linux-networking

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

#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.
Run Code Online (Sandbox Code Playgroud)

在早期的 CenOS 中,从“NetworkManager”服务切换到网络服务时似乎没有任何问题。关于导致问题的原因以及如何解决问题的任何想法?

注意:我使用 yum erase 来删除网络管理服务。

以下是询问的其他信息:

/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
Run Code Online (Sandbox Code Playgroud)
/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
Run Code Online (Sandbox Code Playgroud)
/etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search customer.marples.midcity.lan
nameserver 10.241.128.1
Run Code Online (Sandbox Code Playgroud)

Han*_*hen 34

在 Centos7.0 中,禁用 NetworkManager 将使 dhcp 客户端运行为 NetworkManager 配置。这会导致服务启动RTNETLINK answers: File exists时出现错误消息network

陈旧的dhclient进程有一个额外的“好处”,当租约到期时,你dhclient会窒息,因为它无法到达 NetWorkManager,从而删除你的 IP 地址。

如果您愿意grep,您将看到它指向一个 NetWorkManager 配置文件。

[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
Run Code Online (Sandbox Code Playgroud)

所以你可以做的是杀死dhclient然后才启动你的网络服务。

  • 我也没有足够的声誉来发表评论,但我想支持 Hans 的回答,并补充说我必须在我的 ifcfg 文件中将 bootproto 更改为“none”。dhclient 仅在尝试重新启动网络时才被调用,而终止 dhclient 进程并没有帮助,因为另一个会在它的位置产生。修改 ifcfg 文件解决了我的问题。 (7认同)

小智 7

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