公司业务需要将一台原来在内网的服务器,连接到公网。同事在配置新的公网IP后,发现新IP配置不生效,原因是network服务重启不了,部分报错如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5kMZpHWw4kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2IzN5ETNyUTM2ADOwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
根据以往的经验,最大的可能应是网卡配置文件配置不对。对配置文件反复检查,却没有发现错误。
于是开始度娘解决。部分网友说删除配置文件UUID可解决,但此处失败。还有部分网友认为是NetworkManager服务与network服务冲突导致,关闭NetworkManager发现问题仍然存在。以及一些其他的解决方法也都一一试过,network服务还是无法启动。
最终,我们选择换个思路解决问题。
首先,network和NetworkManager是什么?两者都是centos的网卡服务。不同的是,NetworkManager是centos7.0的版本中新增的,本意为替换network,成为centos新一代的网卡服务,但由于NetworkManager存在一些BUG及兼容性的问题(或许还有用户的使用习惯),大部分centos7的用户并未使用新的网卡服务NetworkManager,而是把它禁用,启用network做为网卡服务。
其次,NetworkManager从功能上来讲完全可以替代network。由于需要尽快完成需求,因此我们选择的最终方案是启用NetworkManager,禁用network,问题得到暂时性解决。
//network本身处于未启动状态,因此只需禁用开机自启
systemctl disable network
//重启NetworkManager并设置开机自启
systemctl restart NetworkManager && systemctl enable NetworkManager
需要注意, 业务需要是根本目标,解决方案只是完成目标的手段。部分场景下,一味的追求直接解决问题会让简单的问题复杂化。