HCRM博客

CentOS 8网络服务重启与CentOS 7的差异分析

CentOS 7重启网络服务,CentOS 8为何弃用network-scripts

网卡突然罢工,远程连不上,第一反应多半是“重启网络”。在CentOS 7里,这条命令闭着眼睛都能敲:systemctl restart network,回车就能喝口咖啡等灯变绿。可同样的动作搬到CentOS 8,屏幕直接甩你一句“unit network.service not found”。别怀疑人生,不是手滑,是官方把整套network-scripts踢出了系统。

CentOS 8网络服务重启与CentOS 7的差异分析-图1

CentOS 7重启网络服务的正确姿势

先复习旧考卷。CentOS 7依旧沿用/etc/sysconfig/network-scripts/那一摞ifcfg-*文件,想改IP、改DNS、改网关,直接vi ifcfg-eth0就行。改完保存,执行:

systemctl restart network

这条指令会调用/usr/lib/systemd/system/network.service,它再去逐行扫描ifcfg文件,最后调用ifupifdown脚本把网卡拎起来。逻辑简单粗暴,用了十来年,坑也明明白白:

  • 配置文件与运行态脱节,改完忘了重启,容易“配置生效没?”
  • CentOS 8网络服务重启与CentOS 7的差异分析-图2

  • 脚本层层调用,出错信息被吞,排障靠猜。
  • 不支持现代特性,像Wi-Fi漫游、IPv6前缀委派、SR-IOV热插拔,都得自己打补丁。

可它胜在“人人会”,网上一搜全是教程,所以CentOS 7至今在机房保有量依旧高。

CentOS 8为何直接砍掉network-scripts

红帽在8里拍板:默认网络栈交给NetworkManagernetwork-scripts包被挪到AppStream仓库,装也能装,但官方提示“请仅在升级场景临时使用”。换句话说,新装系统就别惦记了。原因三条,条条扎心:

CentOS 8网络服务重启与CentOS 7的差异分析-图3

1. 统一配置入口

NetworkManager提供nmclinmtuinm-connection-editor,命令行、伪图形、图形界面全覆盖,一份配置多工具共享,不再出现“vi派”与“图形派”各写各的。

2. 热插拔与状态监控

网卡上线、下线、VPN切换、Wi-Fi漫游,NetworkManager通过D-Bus实时广播,其他服务能立即收到事件,写脚本再也不用定时轮询。

3. 云和容器友好

nm-cloud-setup子模块可自动识别AWS、Azure、GCP元数据,一键配置多网卡、多路由表;配合podmandockermacvlanipvlan,NetworkManager能动态创建/销毁接口,而network-scripts只能靠人工ifup-eth0:1硬怼。

再加上systemd一统江湖,network.service这种SysV风格的脚本自然成了“遗产”。红帽干脆长痛不如短痛,直接移除,逼用户搬家。

NetworkManager接管后该怎么重启网络

CentOS 8里,网卡配置被拆成/etc/NetworkManager/system-connections/*.nmconnection,INI风格,键值对一目了然。想重启网络,有三条常用路:

  1. 单卡重启

    nmcli connection down eth0 && nmcli connection up eth0

    好处:不影响其他网卡,SSH稳稳在线。

  2. 全局重载

    nmcli networking off && nmcli networking on

    相当于把整台机的TCP/IP栈推倒重来,适合大规模改路由、改DNS后一次性生效。

  3. 直接编辑文件

    改完*.nmconnection后执行nmcli connection reload,再nmcli connection up,无需重启系统,也无需特权重启服务。

有人吐槽“命令太长”,其实nmcli con reload; nmcli con up eth0就能搞定,敲两次键盘比systemctl restart network多四个字母,换来的是热插拔、事件通知、云元数据自动配置,不亏。

老脚本迁移踩坑实录

如果机器从CentOS 7原地升级到8,ifcfg-eth0会被NetworkManager自动翻译成eth0.nmconnection,但以下细节常被忽略:

BOOTPROTO=none会被转成ipv4.method manual,可如果你原先手写IPADDR0=PREFIX0=,却忘了写GATEWAY0=,升级后网关字段会被清空,导致“能内网不能外网”。

HWADDRUUID冲突时,NetworkManager优先信任UUID,结果MAC地址绑定失效,虚拟机克隆场景最常见。解决方法是nmcli con delete旧连接,再nmcli con add新建,让系统自动生成新UUID。

ONBOOT=no会被忽略,NetworkManager默认所有连接随系统启动,如需“开机不启用”,必须nmcli con mod eth0 connection.autoconnect no

把这些坑踩一遍,再回看官方文档那句“network-scripts不再维护”,就能体会红帽的潜台词:旧船票登不了新船,早换早省心。

总结与建议

CentOS 7下,systemctl restart network仍是救命稻草,但记得提前ip addr备份现场,防止配置回滚找不到北。新装或升级的CentOS 8,直接拥抱NetworkManager,用nmcli写脚本,用nmtui救急,别再yum install network-scripts走回头路。毕竟维护者已经散伙,哪天脚本里调用的ifup悄悄失踪,哭都来不及。

CentOS 7重启网络服务靠network.service,CentOS 8弃用network-scripts是官方逼你升级工具链,早点习惯nmcli,才能在下一次网卡罢工时,一杯咖啡喝完,SSH标签依旧绿得发亮。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41689.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~