解决 systemctl restart network 失败的问题 真实有效 network.service Failed to start LSB: Bring up/down networking

0x00 network.service Failed to start LSB: Bring up/down networking - Centos 7

这个问题说来已久,网上大量文章都是让你去修改配置文件写上mac地址,还有就是去 用 systemctl stop NetworkManager 我觉得这样做完真的有效的人寥寥无几。我就不复制粘贴他们的帖子了,这里我说一个真实有效的方法,这个方法有别于以上那些。

因为 MAC 地址出问题的,大部分是服务器换了板子或是虚拟机相关的,他们是操作系统识别的时候就出了错误造成的。

因为 NetworkManager 出问题的大部分是因为 dhcp 出了问题,这块我按照他们的方法做了实验了去仔细观察实际上是有一定的效果的。我来说说具体的问题

还有一个让这个问题不好的查看到的原因是,如果有装了图形界面的话,直接在图形界面里面改就完了,不会有人注意到这么深入,还有就是改完了重启网卡不成功,重启主机这个事也过去了

0x01 环境

  • Centos7 mini安装
  • 装机时候不勾选自动激活可用的网卡(好些人会忘)

这个条件下,我们开机使用 ip a 查看 ip 地址,只能得到 mac 地址,没有具体的 ip 地址。这时候要去编辑文件 cd /etc/sysconfig/network-scripts/修改ifcfg-XXX文件,把 ONBOOT = NO 改成 ONBOOT = YES 保存退出。这时候重启网卡,就应该能够得到默认的 dhcp 的 IP 地址了。

systemctl restart network.service 就会报错,执行不成功。查看 journalctl -xb

这个时候如果 systemctl stop NetworkManager 用了这个方法的话,此时还需要做一个步骤, ps -ef|grep dhcp 查看进程的编号,然后 kill 这个进程。这个进程出现的太早了,以后获取不到dhcp了。这时候使用 systemctl start network.service 去看大概率的可以直接启动。但是这不是我写这个文的目的。还是会有失败的情况 或者使用 restart 来做还是会失败。但是我观察到一个有意思的现象,就是 ip 获取到了,但是 systemd 没有启动起来 此时去查 status 还是没有启动。这个就很有意思了。

为了不那么麻烦,也不去动 NetworkManager ,我找到了一个有效的方法 但是这个 status 还是会报错,但是 ip 可以生效。/etc/rc.d/init.d/network restart 用这个脚本可以简单有效的让 ip 生效。如果有问题可以 touch /etc/sysconfig/network 这样就可以了。如果用这个脚本 restart 还有报错,那就得检查配置文件了。正常来不会不成功,亲测可用。

上一篇
下一篇