文章目录
- [CentOS 迁移 Ubuntu 24.04 使用教程](#CentOS 迁移 Ubuntu 24.04 使用教程)
CentOS 迁移 Ubuntu 24.04 使用教程
面向:习惯 CentOS 运维人员切换到 Ubuntu24.04
总体总结
CentOS 属于 RHEL 系,使用 yum/dnf + rpm 包管理,默认开启 firewalld 防火墙与 SELinux,root 默认可直接登录;软件版本保守,多用于传统企业业务。Ubuntu 属于 Debian 系,使用 apt + deb 包管理,默认使用 ufw 防火墙,SELinux 默认关闭,root 默认无密码,管理操作依靠普通用户sudo 提权;软件版本更新更快,更适合开发、容器、云主机环境。两套系统都使用 systemd 管理服务,systemctl 命令语法通用;迁移最大工作量:包管理命令、防火墙命令、软件 / 服务名称、配置文件路径。
CentOS7 / CentOS Stream9 VS Ubuntu24.04 总对比表
表格
| 对比项 | CentOS7 | CentOS Stream9 | Ubuntu 24.04 LTS |
|---|---|---|---|
| 发行体系 | RHEL 系 | RHEL 系 | Debian 系 |
| 包管理器 | yum | dnf | apt |
| 软件包格式 | .rpm |
.rpm |
.deb |
| 软件源存放 | /etc/yum.repos.d/*.repo |
/etc/yum.repos.d/*.repo |
/etc/apt/sources.list 、/etc/apt/sources.list.d/*.list |
| 防火墙 | firewalld | firewalld | ufw(默认未启用) |
| SELinux | 默认开启 | 默认开启 | 默认关闭 |
| root 账号策略 | 安装可直接设置 root 密码,可直接登录 root | 安装可直接设置 root 密码,可直接登录 root | root 默认无密码,禁止直接登录;管理使用sudo 提权 |
| 服务管理工具 | systemd | systemd | systemd |
| MySQL 服务名 | mysqld | mysqld | mysql |
| MySQL 主配置文件 | /etc/my.cnf |
/etc/my.cnf |
/etc/mysql/mysql.conf.d/mysqld.cnf |
| 软件版本特点 | 稳定保守,版本偏低 | 滚动更新,介于稳定与新特性之间 | 版本较新,LTS 长期支持 5 年 |
| 典型适用场景 | 传统企业生产业务 | 预发布、测试环境 | 开发、云服务器、Docker/K8s |
逐项详细讲解:区别说明 + Ubuntu 实操案例命令
包管理器不同
区别说明 CentOS 使用 yum/dnf 管理 rpm 包;Ubuntu 使用 apt 管理 deb 包。
重点:
apt update仅刷新软件源索引,不会升级软件 ;apt upgrade执行升级。CentOS 的yum update同时刷新源并升级软件。
Ubuntu 案例命令:
bash
# 更新软件源缓存
sudo apt update
# 升级所有已安装软件;-y 安装时自动确认
sudo apt upgrade -y
# 安装nginx、mysql-server;-y 安装时自动确认
sudo apt install nginx mysql-server -y
# 卸载软件(保留配置文件);-y 安装时自动确认
sudo apt remove nginx -y
# 彻底卸载,删除配置文件;-y 安装时自动确认
sudo apt purge nginx -y
# 搜索软件包
apt search redis
# 查看已安装deb包;-l 以列表形式展示
dpkg -l
# 本地安装deb包;-i 安装指定的 deb 文件
sudo dpkg -i xxx.deb
防火墙工具不同
区别说明 CentOS 使用 firewalld;Ubuntu 使用轻量简单的 ufw,默认不开启。
Ubuntu 案例命令:
bash
# 安装ufw;-y 安装时自动确认
sudo apt install ufw -y
# 查看ufw状态
sudo ufw status
# 开启防火墙
sudo ufw enable
# 放行3306端口tcp;/tcp 指定 TCP 协议
sudo ufw allow 3306/tcp
# 放行80端口;/tcp 指定 TCP 协议
sudo ufw allow 80/tcp
# 删除端口放行规则
sudo ufw delete allow 3306/tcp
# 关闭防火墙
sudo ufw disable
SELinux 安全模块
区别说明 CentOS 默认开启 SELinux,经常拦截网站、数据库访问;Ubuntu24.04 默认关闭,绝大多数场景无需考虑 SELinux。
Ubuntu 案例命令:
bash
# 如需手动安装selinux工具(极少场景才需要);-y 安装时自动确认
sudo apt install selinux-utils -y
# 查看selinux状态,Ubuntu默认输出disabled
getenforce
root 账号权限策略
区别说明 CentOS 安装系统可直接设置 root 密码,可直接登录 root;Ubuntu root 默认无密码,禁止直接登录,管理员操作全部用sudo 。
Ubuntu 案例命令:
bash
# sudo执行root权限命令
sudo ls /root
# 设置root密码,启用root账号
sudo passwd root
# 切换root用户
su - root
# 查看当前登录用户
whoami
服务名称、配置文件路径差异
区别说明 systemctl start/stop/restart/enable 语法三个系统完全一样,但服务名称、配置文件路径经常不一样,例如 mysql:CentOS 叫 mysqld,Ubuntu 叫 mysql。
Ubuntu 案例命令:
bash
# 查看mysql服务状态
sudo systemctl status mysql
# 重启mysql服务
sudo systemctl restart mysql
# 设置mysql开机自启
sudo systemctl enable mysql
# 停止nginx服务
sudo systemctl stop nginx
# 列出所有开机自启服务;--type=service 仅筛选服务类型
systemctl list-unit-files --type=service
软件源配置文件
区别说明 CentOS 源是 /etc/yum.repos.d/ 下多个 repo 文件;Ubuntu 主源文件 /etc/apt/sources.list ,第三方源放在 sources.list.d 目录。
Ubuntu 案例命令:
bash
# 查看系统软件源
cat /etc/apt/sources.list
# 编辑源文件
sudo vim /etc/apt/sources.list
# 添加第三方源文件
sudo tee /etc/apt/sources.list.d/mysql.list
# 添加源后刷新索引
sudo apt update
系统信息查看
区别说明 cat /etc/os-release 三个系统通用;Ubuntu 额外自带lsb_release 工具快速查看系统版本。
Ubuntu 案例命令:
bash
# 通用命令,CentOS/Ubuntu都支持
cat /etc/os-release
# Ubuntu专属查看系统版本;-a 显示全部信息
lsb_release -a
# 查看内核版本(通用);-r 显示内核发行号
uname -r
日志查看
区别说明 日志都存放在 /var/log 目录,journalctl 命令通用;部分服务日志路径名称有差异。
Ubuntu 案例命令:
bash
# 实时查看mysql错误日志;-f 持续跟踪最新输出
tail -f /var/log/mysql/error.log
# 实时跟踪mysql服务日志(journalctl跨系统通用);-u 指定服务单元,-f 跟踪
journalctl -u mysql -f
# 实时查看系统全部日志;-f 持续跟踪
journalctl -f
IP 地址管理区别
区别总述
- CentOS7:默认使用 NetworkManager (nmcli ),也可使用传统
/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件。 - CentOS Stream9:废弃 network-scripts,仅推荐 NetworkManager + nmcli。
- Ubuntu24.04:默认使用 Netplan,底层后端可以是 networkd 或 NetworkManager;不再使用
/etc/sysconfig/network-scripts。配置文件是 yaml 格式。
共同点:
ip addr、ip route命令三个系统完全通用。核心差异:CentOS 习惯 ifcfg 文件/nmcli;Ubuntu 用 Netplan yaml。
对比表格
表格
| 对比项 | CentOS7 | CentOS Stream9 | Ubuntu24.04 LTS |
|---|---|---|---|
| 网络管理工具 | NetworkManager + network-scripts | NetworkManager | Netplan(默认后端 networkd) |
| 网卡配置文件 | /etc/sysconfig/network-scripts/ifcfg-xxx | 无 ifcfg 文件,nmcli 管理 | /etc/netplan/*.yaml |
| 配置语法 | shell 键值对 | nmcli 命令 | YAML(严格缩进!缩进错直接报错) |
| 查看网卡通用命令 | ip addr | ip addr | ip addr |
| 重启网络服务 | systemctl restart network / nmcli | nmcli | netplan apply |
CentOS:网卡配置写在独立 ifcfg 文件,或者 nmcli 命令持久化;Ubuntu:Netplan yaml 文件统一管理网卡,修改 yaml 后执行 netplan apply 生效,无需重启整个网络服务,yaml 缩进极其严格,不能用 tab,只能空格。
Ubuntu 案例命令:
bash
# 1. 查看网卡信息(跨系统通用)
ip addr
# 2. 查看netplan配置文件名称
ls /etc/netplan/
# 3. 编辑netplan配置文件,文件名一般是 00-installer-config.yaml
sudo vim /etc/netplan/00-installer-config.yaml
静态 IP yaml 示例(复制参考,注意缩进,必须空格,禁止 tab)
bash
network:
ethernets:
ens33:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8,114.114.114.114]
version: 2
# 4. 修改配置后,应用网络配置(推荐,不中断连接)
sudo netplan apply
# 5. 查看路由(通用)
ip route
# 6. 临时添加路由(临时,重启失效,跨系统通用);via 指定下一跳网关
sudo ip route add 10.0.0.0/24 via 192.168.1.1
# 7. 临时关闭网卡
sudo ip link set ens33 down
# 8. 临时启用网卡
sudo ip link set ens33 up
迁移坑点
- Netplan yaml 缩进必须空格,不能 Tab,缩进错误直接配置失败,新手高频踩坑。
- CentOS 习惯
systemctl restart network,Ubuntu没有 network 服务 ,修改网卡用netplan apply。 - Ubuntu24.04 默认不自带
ifconfig,需要手动安装 net-tools
总结
通用网络命令
ip addr、ip routeCentOS 和 Ubuntu 通用;CentOS 静态 IP:ifcfg 文件/nmcli;Ubuntu 静态 IP:Netplan YAML 配置文件 +netplan apply生效。
可选实操作业
- 使用
ip addr查看本机网卡名称 - 编辑 netplan yaml 配置静态 IP,执行
netplan apply生效 - 安装 net-tools,使用 ifconfig 查看网卡信息
迁移避坑小结
- systemctl 命令语法不变,迁移重点修改服务名
- 防火墙:firewall-cmd → ufw
- Ubuntu 无需处理 SELinux,少一大类权限故障
- 包管理:yum/dnf → apt;rpm → dpkg
- 养成
sudo习惯,不要直接使用 root 登录