开发者
openEuler —— 为什么它是 CentOS 的最佳接班人
openEuler —— 为什么它是 CentOS 的最佳接班人
原创
发表于05/27
140

一、从 CentOS 停服说起:openEuler 是谁?

2020 年底,Red Hat 宣布 CentOS 8 于 2021 年底停止维护,CentOS 7 于 2024 年 6 月 EOL(生命周期结束)。这意味着曾经占据互联网服务器半壁江山的“免费 RHEL”时代正式落幕。大量生产系统面临三种选择:

  • 转向 RHEL 开发订阅(免费但限制节点数,且需要注册)
  • 转向其他 EL 兼容发行版(Rocky Linux、AlmaLinux)
  • 转向国内自主可控的 openEuler

openEuler 是华为开源的一款 Linux 发行版,起源于华为内部操作系统 EulerOS。2019 年底正式开源,由 openEuler 社区(已捐赠给开放原子开源基金会)进行治理。它不仅仅是一个“国产版 CentOS”,更承载了数字基础设施操作系统的使命——支持服务器、云计算、边缘计算、嵌入式等多种场景。

与 CentOS 不同,openEuler 从内核开始就拥抱创新:支持异构计算(x86、Arm、RISC-V)、内置国密算法、提供容器化操作系统(iSula)、以及完整的内核热补丁机制。对运维来说,它的最直接价值是:在 CentOS 停更后,提供一个稳定、兼容、且有长期支持的免费服务器操作系统。

二、版本选型:LTS 版 vs 创新版

openEuler 的版本策略比 CentOS 更清晰:

版本类型发布周期维护周期稳定性适用场景
LTS(长期支持版)每 2 年一个4 年极高生产服务器、数据库、核心业务
创新版每 6 个月一个6 个月开发测试、尝鲜新特性

当前(2025 年)推荐使用的 LTS 版本是 openEuler 22.03 LTS SP3(SP 为服务包,相当于 RHEL 的小版本)。它的内核基于 5.10,软件包库相对稳定,并持续提供安全更新直至 2026 年。下一个 LTS 版本 24.03 LTS 已于 2024 年发布,若追求更新软件栈可选择 24.03。

迁移建议:如果你的生产环境目前是 CentOS 7,可以直接考虑迁移到 openEuler 22.03 LTS SP3(x86_64 兼容性最好)。如果是 CentOS 8,则更推荐 24.03 LTS。 切记:不要在生产环境使用创新版,它的生命周期极短,且不保证 API/ABI 兼容性。

三、安装实操:从 ISO 到可登录系统

3.1 获取镜像

访问 openEuler 官网 下载对应架构的 ISO。对于 x86_64 服务器,选择 openEuler-22.03-LTS-SP3-x86_64-dvd.iso。建议使用 标准安装 ISO(约 4GB),包含常用的服务器软件包。

3.2 安装关键点(与 CentOS 的差异)

  1. 磁盘分区:默认使用 LVM 且 /home 单独分区。如果你的服务器跑容器或数据库,建议手动调整:

    • /boot:1GB(xfs)
    • /:30~50GB(xfs)
    • /var:剩余全部(因为 docker、log 都在此)
    • 去掉 /home(生产服务器一般不需要家目录)
    • swap:按传统规则分配(内存 < 8G 则等于内存;> 8G 则 8~16G 即可)
  2. 软件包选择:建议选择“最小安装”,然后根据需要手动安装工具。不要勾选“图形化界面”,那是资源浪费。

  3. 网络配置:安装过程中可以设置静态 IP,也可以在系统装好后通过 nmtui 修改。注意 openEuler 已全面使用 NetworkManager,不再推荐修改 /etc/sysconfig/network-scripts/ifcfg-*(虽然兼容但未来会移除)。

3.3 安装后首次登录体验

  • 默认 root 密码在安装时设置,SSH 服务默认 开启(与 CentOS 一致)。
  • 登录后的欢迎信息会提示“openEuler”字样和内核版本。
  • 查看发行版信息:cat /etc/openEuler-release → 输出 openEuler release 22.03 (LTS-SP3)

四、运维锦囊:首次开机必做的 5 件事

一个干净的系统不能直接扔进生产,必须完成以下初始化:

4.1 配置 repo 源

openEuler 默认使用社区官方源,国内访问速度尚可,但建议备份原始文件并启用华为云镜像:

mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
curl -o /etc/yum.repos.d/openEuler.repo https://mirrors.huaweicloud.com/repository/conf/openeuler_x86_64.repo

执行 dnf makecache 验证。

4.2 关闭 firewall ?不,要正确使用

很多运维习惯 systemctl stop firewalld && systemctl disable firewalld,但在 openEuler 上,firewalld 默认使用 nftables 后端,性能更优。正确的做法是:

  • 如果你在 IDC 内网且有硬件防火墙,可以关掉。
  • 否则,建议保留并放行必要端口:
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

4.3 更新系统并安装基础工具

dnf update -y
dnf install -y vim wget curl net-tools lrzsz tree bash-completion \
  sysstat lsof bind-utils telnet nc tcpdump

4.4 修改 SSH 安全配置(生产必须)

编辑 /etc/ssh/sshd_config

# 禁止 root 直接登录(使用普通用户 + sudo)
PermitRootLogin no
# 禁止空密码
PermitEmptyPasswords no
# 仅允许特定用户(替换为 youruser)
AllowUsers youruser
# 关闭不安全的协议
Protocol 2

然后 systemctl restart sshd注意:在禁止 root 登录之前,务必先创建一个有 sudo 权限的普通用户:

useradd -m -G wheel youruser
passwd youruser
# wheel 组默认有 sudo 权限

4.5 时区与 chrony 时间同步

timedatectl set-timezone Asia/Shanghai
dnf install -y chrony
systemctl enable --now chronyd
chronyc sources -v   # 验证同步源

五、openEuler 与 CentOS 的兼容性速查

很多运维担心原来的脚本、RPM 包在 openEuler 上无法运行。事实是:

  • RPM 包:绝大多数 CentOS 7/8 的二进制 RPM 可以直接安装(前提是不依赖老版本 glibc/kernel 符号)。
  • 命令与目录:95% 以上操作一致(systemd、dnf/yum、firewalld、crontab 等)。
  • 已知差异
    • 默认 Python 版本:openEuler 22.03 是 Python 3.8+,不再提供 Python 2(CentOS 7 是 2.7)。
    • net-tools 不再默认安装(ifconfig 需手动装)。
    • service 命令依然可用,但建议用 systemctl
    • cgroup 版本为 v2(CentOS 7 是 v1),容器运行时需要适配(Docker 20.10+ 支持)。

建议:在迁移前,使用 x2openEuler 工具做预扫描(后续第 10 期会详述),它会列出不兼容的 RPM 和配置。

六、实验指南(动手才记得牢)

  1. 虚拟机安装:使用 VMware Workstation 或 VirtualBox,CPU 选 2 核,内存 4GB,网卡使用 NAT 或桥接。
  2. 目标:完成最小化安装后,按上述“5 件事”配置系统,最终能够通过 SSH(普通用户 + sudo)远程管理。
  3. 自测dnf install -y nginx,用 curl localhost 验证服务是否正常(注意先放行 80 端口)。

七、小结与预告

openEuler 不是“换皮 CentOS”,而是一个持续演进、开源治理、对国产芯片和国密算法友好、同时保持了极佳 RHEL 兼容性的服务器操作系统。对于运维团队,它既是解决 CentOS 停服最稳妥的出路,也是未来接触异构计算、容器化 OS、内核热补丁等新技术的入口。

下期预告:第 2 期《基础命令与 RPM 之变 —— 从 Yum 到 DNF 的平滑过渡》,我们会深入 openEuler 的包管理机制,解决“为什么装软件总是依赖冲突”,并教你构建一个离线的软件源,保证无网络环境下的部署能力。


思考题:为什么 openEuler 默认不再提供 ifconfig 命令?它在现代 Linux 中替代了什么?(答案下期揭晓)

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞