CentOS 8变化大盘点:dnf、nftables、 cockpit必知

装完CentOS 8,第一眼就能看到老熟人yum不见了,敲命令回车提示“redirecting to dnf”,心里咯噔一下:又得重新背命令。别慌,这次改动不是折腾人,而是把底层工具换成更顺手的版本,顺带把防火墙和网页管理也翻新一遍。把dnf、nftables、Cockpit三件事捋顺,系统上手就能干活,不踩坑。

dnf接管软件包:yum的升级版到底改了啥
过去yum查个包,进度条慢得能泡杯茶;dnf用C语言重写依赖求解器,同样仓库速度肉眼可见地快。常用操作几乎没变化,yum install直接换成dnf install,配置文件还在/etc/dnf/dnf.conf,以前的yum.repos.d同样生效,旧脚本搬过来无需改路径。
差异点得记三条:第一,dnf默认启用“最快镜像”插件,装包前会测速,第一次略慢,之后飞起;第二,清理缓存命令从yum clean all变成dnf clean all,加上--refresh参数能强制同步最新元数据;第三,历史记录可回滚,dnf history undo N能把整批包一键还原,测试环境回退神器。
模块化仓库是彩蛋。想装特定版本Node.js,不用四处找源,dnf module list nodejs列出所有流,dnf module enable nodejs:16直接锁定16.x长期支持,升级系统不会误升到17,生产环境求稳的人偷着乐。
nftables接班防火墙:规则写一行顶三行
iptables用了二十年,语法像天书,一条转发写一串-m -j,眼花。CentOS 8把默认防火墙框架换成nftables,内核级新驱动,性能提升只是小意思,关键是规则可读性暴涨。
最直观变化:ipv4、ipv6合成一张表,nft list ruleset一次看完所有条目,不再iptables -L + ip6tables -L两头跑。新建规则用nft命令,语法接近自然语言,允许SSH写成nft add rule inet filter input tcp dport 22 accept,省掉-m tcp --dport这种重复模板。
旧脚本别急着扔。系统自带iptables-nft翻译层,老命令照样跑,底层自动转成nftables,日志里能看到对应规则,过渡零压力。但新写脚本建议直接上nft,一是减少转换开销,二是后续RHEL系只会维护nft,早换早省心。
防火墙策略持久化也换了地方,nft list ruleset > /etc/nftables.conf,然后systemctl enable nftables,开机一次性加载,比iptables-save那段管道符简洁得多。
Cockpit打开浏览器就能管服务器:图形偷懒命令不偷懒
对图形界面又爱又恨的人,Cockpit正中下怀。装完系统systemctl enable --now cockpit.socket,9090端口立刻监听,浏览器输入https://服务器IP:9090,证书点跳过,root账号登进去,一眼看到CPU、内存、磁盘负载,点几下就能格式化硬盘、建用户、改时区,鼠标流也能干活。
别以为只是花哨仪表板,终端模块直接嵌在网页里,复制粘贴本地命令毫无障碍,关键时刻还能开多标签,比本地SSH少开一个窗口。对Windows用户尤其友好,再也不用装PuTTY。
集群模式更香。把多台机器同样打开cockpit,在Web界面点“添加主机”输入地址,统一跳转到同一面板,日志、更新、服务状态集中查看,小机房也能玩出云管平台的味道。权限走系统账号,无需额外数据库,配好SSH密钥即可批量操作。
三条命令速查表:日常操作一贴就够

dnf search 包名 /tab 模糊查找
dnf info 包名 /tab 看详情
dnf -y install 包1 包2 /tab 批量装
nft list ruleset /tab 看全部规则
nft add rule inet filter input tcp dport 80 accept /tab 即时放行Web
nft delete rule inet filter input handle 编号 /tab 删单条
systemctl enable --now cockpit.socket /tab 开Web面板
常见坑与绕过姿势
1. 仓库报错“Failed to download metadata”:多半是 fastest mirror 插件选中慢镜像,dnf config-manager --set-disabled fastestmirror临时关闭,再手动挑国内源即可。
2. nftables规则重启丢失:忘记enable服务,systemctl enable nftables解决;或者写错路径,确保/etc/nftables.conf被Include进主配置。
3. Cockpit 9090端口无法访问:默认被防火墙拦,nft add rule inet filter input tcp dport 9090 ct state new,established accept放行,或干脆用firewall-cmd --permanent --add-service=cockpit,二选一。
迁移 checklist:老系统切到CentOS 8不踩雷
备份旧iptables规则→iptables-save > rules.v4,留档;
安装完先执行dnf update,确保内核与nftables版本对齐;
把/etc/yum.repos.d里自定义仓库文件拷贝到新系统,逐条dnf config-manager --add-repo确认可用;
测试关键服务启动脚本,确认里面没有硬编码yum命令,如有则替换为dnf;
打开Cockpit,对照旧机器服务列表,一条条systemctl enable,别漏掉自启。
整完这套流程,CentOS 8的新工具链就能顺利用起来,dnf装包飞快,nftables规则清爽,Cockpit随时手机看状态,服务器维护工作量肉眼可见地下降。
