HCRM博客

CentOS网络配置,network-scripts与NetworkManager的选择与对比

CentOS里的network-scripts与NetworkManager取舍

装完CentOS,第一件事往往是配网。可一敲ifcfg-eth0,系统却提示“network-scripts已废弃”;想回头用nmcli,又怕脚本批量部署时掉链子。左手是老牌network-scripts,右手是官方力推的NetworkManager,到底留谁?这篇文章把两条路线的底裤扒光,给你一份可直接拍板的操作清单。

CentOS网络配置,network-scripts与NetworkManager的选择与对比-图1

network-scripts还活着吗?

在CentOS 7及更早版本,/etc/sysconfig/network-scripts/目录是圣地,ifcfg-*文件写一行BOOTPROTO=static就能定终身。到了CentOS 8,Red Hat把这套脚本标成deprecated,默认不再安装;Stream继续保留包,但安装后会有显眼的“unsupported”警告。结论:能用,却没人给你兜底。

好处也明显:纯文本,Git一扔就能版本管理;ifup/ifdown调用链路短,排障时少绕弯。坏处同样硬核:新网卡命名规则下,脚本得手工改;Team、Bridge、VLAN复合场景,文件数量爆炸;最致命的是官方不再同步修bug,安全补丁随缘。

NetworkManager真那么香?

NetworkManager出道时桌面党欢呼,服务器圈却嫌弃“又重又慢”。经过十年迭代,现在的nmcli已经能一句话搞定桥接、组口、VLAN、IPv6、DHCP、DNS、路由、策略路由:nmcli con add type bridge ifname br0 autoconnect yes,回车即成。对自动化友好,是Ansible、Kickstart、cloud-init官方默认路径。

担心“后台守护进程崩了全网挂”?实测最小化安装内存占用不到20 MB,崩溃概率低于手动写错一个字母导致网络失联的概率。再配个nm-cloud-setup,公有云里热插拔弹性网卡也能秒级识别。

CentOS网络配置,network-scripts与NetworkManager的选择与对比-图2

谁该留守,谁该走人

给你三张场景清单,直接对照入座:

场景A:传统机房+大量存量脚本

几百台物理机跑CentOS 7,SaltStack调用ifup做漂移IP。升级系统意愿低,继续network-scripts最省事;但新采购机器直接装CentOS Stream,用NetworkManager,通过Role区分,别混用,省得半夜排障抓狂。

场景B:私有云+KVM集群

宿主机需要桥接、VLAN、聚合、SR-IOV,一口气全上。network-scripts得写七八个文件,文件名还容易敲错;NetworkManager一条命令生成UUID,配置集中保存在/etc/NetworkManager/system-connections/,备份恢复一条tar搞定。

CentOS网络配置,network-scripts与NetworkManager的选择与对比-图3

场景C:容器化+GitOps

网络配置随仓库下发,CI校验语法。nmcli支持keyfile格式,纯文本,Git diff一目了然;network-scripts虽然也是文本,但多网卡场景下文件耦合高,Review时容易漏看。

无痛迁移四步走

1. 先装兼容包:yum install network-scripts -y,别让旧脚本瞬间失效。

nmcli device status扫一遍,确认所有接口已被NetworkManager托管。

逐条迁移,命令行里nmcli con show对比原ifcfg-*参数,尤其注意DEFROUTEIPV6_PEERDNS这类冷门字段,缺一行都可能导致默认路由消失。

关闭旧服务:systemctl disable network && systemctl stop network,再systemctl enable NetworkManager,重启验证。

踩坑记录与急救方案

坑1:ifcfg文件残留优先级高于nmcli

NetworkManager默认启动ifcfg-rh插件,扫描到同名ifcfg-eth0会接管配置。若你一边用nmcli改,一边旧文件还在,重启后配置被覆盖,现场直接炸。解决:迁移完成立即把旧文件挪走,或rm -f /etc/sysconfig/network-scripts/ifcfg-*

坑2:团队里有人习惯性service network restart

CentOS 8以后该命令被指向NetworkManager的兼容脚本,但参数解析不严谨,容易漏加载桥接模块。统一培训,把口头禅改成nmcli connection reload

坑3:云厂商自定义镜像禁用了NetworkManager

某些国内云把NM阉割掉,系统更新时直接回退到network-scripts。上线前检查rpm -V NetworkManager,发现缺失字段立刻找镜像方要合规包。

最小化示例:一条命令起静态IP

假设新装系统,网卡名ens192,想配地址10.0.0.7/24,网关10.0.0.1,DNS写223.5.5.5

nmcli con add type ethernet ifname ens192 con-name static-ens192 autoconnect yes ip4 10.0.0.7/24 gw4 10.0.0.1 ipv4.dns 223.5.5.5

回车后配置文件落盘:/etc/NetworkManager/system-connections/static-ens192.nmconnection,权限600,重启不丢。想改地址,再来一条:

nmcli con mod static-ens192 ipv4.addresses 10.0.0.8/24 && nmcli con up static-ens192

全程无需touch任何脚本。

别纠结,先上NetworkManager

除非你的环境永远锁在CentOS 7且无人力改造,否则NetworkManager已是事实标准。官方支持、自动化友好、云原生适配、社区教程丰富,四大优势碾压旧脚本。network-scripts可以留作过渡,但新机器、新系统、新项目一律NM,减少后续推倒重来的人力成本。

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

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

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