1. 为什么选择欧拉系统,以及安装前必须想清楚的几件事
第一次接触 openEuler 的人,十有八九是被"国产服务器操作系统"这个标签吸引过来的。但真正上手之后你会发现,它并不是一个"换个皮的 CentOS",而是一套有自己软件源体系、有自己的生命周期管理策略、并且对 ARM 和 x86 双架构支持都相当认真的发行版。我最初是在一台闲置的物理服务器上装的 openEuler 22.03 LTS,后来又在 VMware 里反复装了好几遍,踩过的坑足够写一篇完整的记录。
先说清楚这篇内容适合谁看。如果你手里有一台服务器、一台虚拟机,或者一块想拿来折腾的旧硬盘,想装一个稳定、长期维护、软件生态还算完整的 Linux 发行版,那 openEuler 是个值得认真考虑的选择。它基于 Linux 内核,使用 RPM 包管理体系,和 RHEL/CentOS 系的操作习惯高度接近,所以如果你之前用过 CentOS,迁移成本其实很低。但如果你是完全没碰过 Linux 的新手,我建议先在一台虚拟机上练手,不要直接往生产环境上怼。
安装之前有几件事必须先想明白,这决定了你后面会不会返工。
第一,你要装哪个版本。openEuler 目前主流的是 LTS 版本,比如 20.03 LTS、22.03 LTS、24.03 LTS。LTS 意味着长期支持,社区会持续提供安全更新和维护。数字越大越新,但新版本对某些老硬件的兼容性可能反而不如老版本。我个人的建议是:生产环境优先选 22.03 LTS 或 24.03 LTS,实验环境随便。
第二,你的硬件架构是什么。openEuler 同时支持 x86_64 和 aarch64(ARM64)。如果你用的是普通的 Intel/AMD 机器或者 VMware,那就是 x86_64;如果你用的是鲲鹏、飞腾这类国产 ARM 服务器,那就是 aarch64。下载镜像的时候一定要选对,选错了根本装不上。
第三,你打算用哪种安装方式。物理机直接装、虚拟机装、还是用 PXE 批量部署,这三种场景的准备工作完全不同。这篇内容主要覆盖前两种,因为这是绝大多数人真正会遇到的场景。
第四,网络怎么规划。这是最容易被忽略、但装完之后最容易出问题的地方。openEuler 默认安装完可能没有自动配好网络,尤其是最小化安装的情况下。你得提前想好:是 DHCP 自动获取,还是手动配静态 IP?服务器放在机房还是本地?有没有显示器和键盘?这些问题后面我会专门用一章来讲。
提示:如果你打算在 VMware 里装,提前把虚拟机的内存给到至少 2GB、硬盘给到至少 20GB。openEuler 最小化安装虽然占用不大,但后续你要装 Docker、数据库这些东西,空间留少了会很痛苦。
2. 镜像获取与 VMware 虚拟机的前期配置
2.1 从官方渠道拿到正确的镜像文件
openEuler 的镜像获取渠道其实很集中,直接去官网的下载页面就行。官网会列出当前所有可用版本,每个版本下面会区分 x86_64 和 aarch64 两种架构,还会区分"服务器版""边缘版"等不同用途的镜像。对于绝大多数人来说,选标准的服务器 ISO 镜像就够了。
下载的时候注意几个细节。ISO 文件通常有几个 GB,下载完成后一定要校验一下哈希值,官网一般会提供 SHA256 校验码。我吃过一次亏,镜像下载过程中网络抖动导致文件损坏,装到一半报错,排查了半天才发现是镜像本身的问题。校验命令很简单:
sha256sum openEuler-22.03-LTS-x86_64-dvd.iso把输出的哈希值和官网公布的值对比一下,一致就说明文件没问题。
另外,openEuler 的 ISO 分两种:一种是 DVD 完整版,包含大量软件包,适合离线安装;另一种是 netinst 网络安装版,体积小但安装过程中需要联网下载软件包。如果你网络环境不稳定,强烈建议下 DVD 完整版,省得装到一半卡住。
2.2 VMware 虚拟机参数怎么给才合理
在 VMware Workstation 里新建虚拟机的时候,有几个参数值得认真对待,不要一路"下一步"点到底。
内存方面,最小化安装 2GB 够用,但如果你打算装图形界面(比如 UKUI 桌面),建议给到 4GB。我试过 2GB 内存装 UKUI,桌面能起来但操作明显卡顿,体验很差。
CPU 方面,给 2 核就够了,openEuler 本身对 CPU 要求不高。但如果你要在上面跑编译任务或者数据库,核心数给多一点会舒服很多。
硬盘方面,这是重点。建议至少 40GB,并且选择"将虚拟磁盘拆分成多个文件"这个选项。这样做的好处是虚拟机文件不会一开始就占用全部空间,而是用多少占多少。磁盘类型选 SCSI 或者 SATA 都行,openEuler 对这两种控制器都有驱动。
网络模式,这是新手最容易搞错的地方。VMware 提供桥接、NAT、仅主机三种主要模式:
| 网络模式 | 特点 | 适用场景 |
|---|---|---|
| 桥接模式 | 虚拟机直接接入物理网络,获得独立 IP | 需要被局域网其他机器访问 |
| NAT 模式 | 虚拟机通过宿主机上网,外部无法直接访问 | 只是自己练习,不需要外部访问 |
| 仅主机模式 | 只能和宿主机通信 | 完全隔离的实验环境 |
我一般推荐先用 NAT 模式,装完系统确认能上网之后,再根据实际需求决定要不要改成桥接。因为桥接模式下如果 IP 配置不当,可能会和局域网里的其他设备冲突。
2.3 挂载镜像并进入安装引导
虚拟机建好之后,在设置里把下载好的 ISO 文件挂载到虚拟光驱上,然后启动虚拟机。你会看到 openEuler 的安装引导界面。
引导界面通常有几个选项:直接安装、测试介质并安装、故障排查等。如果你已经校验过哈希值,直接选第一项安装就行。如果没校验过,建议选"测试介质并安装",它会先检查 ISO 完整性再进入安装流程,多花几分钟但能避免后面出问题。
引导加载过程中,屏幕会滚动一堆内核启动信息,这是正常的。等它停下来进入图形化安装界面,就可以开始正式配置了。
3. 安装过程中的关键配置项逐个拆解
3.1 语言、时区与安装源的设置逻辑
进入安装界面后,第一件事是选语言。这里有个小细节:如果你选中文,安装界面的字体渲染在某些分辨率下可能会有点糊;选英文则显示更清晰。但选中文的好处是后续报错信息你能直接看懂。我个人的习惯是安装时选英文,装完之后在系统里再配置中文环境,这样两边的优势都能占到。
时区设置很多人直接跳过,但这其实挺重要。时区不对会导致系统日志时间戳错乱,后面排查问题的时候时间线对不上,非常难受。国内的话选 Asia/Shanghai 就对了。如果你勾选了"设置时间自动同步",系统会通过 NTP 协议自动校准时间,前提是网络通。
安装源(Installation Source)这一项,如果你用的是 DVD 完整版镜像,默认会指向本地光驱,不用改。如果你用的是 netinst 版本,这里需要配置网络源地址。openEuler 的官方源地址在官网有公布,配置的时候注意选对应版本的仓库。
软件选择(Software Selection)是决定你装完之后系统里有什么的关键步骤。openEuler 通常提供几个选项:
- 最小安装:只有最基本的命令行工具,没有图形界面,占用最小,适合服务器
- 标准安装:包含一些常用工具,但依然没有图形界面
- 带 UKUI 的服务器:包含 UKUI 桌面环境,适合需要图形界面的场景
- 虚拟化主机:包含虚拟化相关组件
我强烈建议服务器场景选最小安装。原因很简单:装的东西越少,攻击面越小,后续维护越简单。你需要什么再单独装,比一开始装一大堆用不上的东西要清爽得多。如果你确实需要图形界面,后面可以单独装 UKUI,我在第 5 章会讲怎么操作。
3.2 分区方案:自动还是手动
分区是安装过程中最需要动脑子的地方。openEuler 默认提供自动分区,它会根据你的硬盘大小自动划分 /boot、/、swap 等分区。对于新手来说,自动分区完全够用,不用纠结。
但如果你对分区有要求,比如想把 /home 单独分出来、或者想用 LVM 方便后续扩容,那就得手动分区。手动分区的时候,几个关键挂载点的建议大小如下:
| 挂载点 | 建议大小 | 说明 |
|---|---|---|
| /boot | 1GB | 存放内核和引导文件,不要太小 |
| swap | 内存的 1-2 倍 | 交换分区,内存足够大时可以小一点 |
| / | 20GB 以上 | 根分区,装系统和软件 |
| /home | 剩余空间 | 用户数据,单独分区方便重装系统时保留 |
手动分区时有个坑要注意:openEuler 默认使用 xfs 文件系统,这是没问题的,但如果你之前习惯了 ext4,要知道 xfs 在缩小分区方面不如 ext4 灵活。所以如果你打算后续可能缩小分区,选 ext4 会更方便。
另外,如果你用的是 UEFI 启动模式,还需要一个 EFI 系统分区,通常 200MB-500MB,格式为 EFI System Partition。这个分区在自动分区时系统会自动创建,手动分区时别忘了。
3.3 root 密码与用户创建的安全考量
安装过程中会要求你设置 root 密码。openEuler 默认对密码复杂度有要求,太简单的密码(比如 123456)会被拒绝。这不是系统在刁难你,而是安全策略。建议用大小写字母加数字加符号的组合,长度至少 8 位。
除了 root 密码,安装界面通常还会让你创建一个普通用户。这个步骤很多人会跳过,但我建议不要跳。原因有两个:一是日常操作使用普通用户更安全,需要 root 权限时用 sudo 提权;二是某些软件(比如某些数据库)不允许以 root 身份运行,必须用普通用户。
创建用户的时候,记得勾选"将此用户设为管理员",这样这个用户就能使用 sudo 命令了。如果不勾选,后续还得手动把用户加到 wheel 组里,多一步操作。
所有配置确认无误后,点击"开始安装",剩下的就是等待。安装时间取决于你的硬盘速度和选择的软件包数量,一般十几分钟到半小时不等。安装完成后会提示重启,重启前记得把虚拟光驱里的 ISO 卸载掉,否则可能又从光驱引导进入安装界面。
4. 装完之后的网络配置:DHCP、静态 IP 与多网卡管理
4.1 为什么装完系统第一件事是检查网络
openEuler 最小化安装完成后,网络接口默认可能是关闭状态,或者虽然开启了但没有获取到 IP。这时候你 ping 任何外网地址都会失败,yum 装软件也会报错。所以装完系统第一件事,就是确认网络状态。
查看网络接口状态的命令:
ip addr这个命令会列出所有网络接口及其 IP 地址。如果你看到某个接口(比如 ens33 或 eth0)只有 MAC 地址没有 inet 地址,说明它没有获取到 IP。再看一下接口是否处于 UP 状态:
ip link show如果接口显示 state DOWN,说明接口没启用。可以用下面的命令启用:
sudo ip link set ens33 up但这样只是临时启用,重启后会失效。要永久生效,需要修改网络配置文件。
4.2 用 nmcli 配置静态 IP 的完整流程
openEuler 默认使用 NetworkManager 管理网络,所以推荐用 nmcli 这个命令行工具来配置。相比直接改配置文件,nmcli 的好处是改完立即生效,不用重启网络服务。
先查看当前的连接:
nmcli connection show你会看到一个连接名称,通常是 ens33 或者类似的接口名。假设连接名是 ens33,要配置静态 IP,命令如下:
sudo nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24 sudo nmcli connection modify ens33 ipv4.gateway 192.168.1.1 sudo nmcli connection modify ens33 ipv4.dns "8.8.8.8 114.114.114.114" sudo nmcli connection modify ens33 ipv4.method manual sudo nmcli connection up ens33这几条命令分别设置了 IP 地址、网关、DNS 和手动配置模式,最后重新激活连接。执行完之后再用 ip addr 查看,应该就能看到配置好的静态 IP 了。
如果你想要 DHCP 自动获取,把 ipv4.method 改成 auto 就行:
sudo nmcli connection modify ens33 ipv4.method auto sudo nmcli connection up ens33注意:配置静态 IP 的时候,一定要确保这个 IP 没有被局域网里其他设备占用,否则会出现 IP 冲突,表现为网络时通时断,非常难排查。建议在路由器或交换机的 DHCP 地址池之外选一个地址。
4.3 多网卡场景下的路由与 DNS 管理
服务器上有多块网卡是很常见的情况,比如一块连内网、一块连外网。这种场景下,路由配置就变得关键了。
假设你有两块网卡:ens33 连外网(网关 192.168.1.1),ens34 连内网(网关 10.0.0.1)。如果你两块网卡都配了默认网关,系统可能会随机选一个走,导致网络行为不可预测。正确的做法是只给一块网卡配默认网关,另一块只配 IP 和子网掩码,然后通过静态路由指定内网流量走 ens34。
用 nmcli 添加静态路由:
sudo nmcli connection modify ens34 ipv4.routes "10.0.0.0/8 10.0.0.1"这条命令的意思是:去往 10.0.0.0/8 网段的流量,走 10.0.0.1 这个网关。这样内网流量走 ens34,其他流量走 ens33 的默认网关,逻辑就清晰了。
DNS 方面,如果两块网卡都配了 DNS,系统可能会混用。建议只在主网卡上配 DNS,或者通过 /etc/resolv.conf 统一管理。不过要注意,NetworkManager 可能会覆盖 /etc/resolv.conf,所以最好还是通过 nmcli 来配 DNS。
4.4 没有显示器和 IP 时如何进后台配置
这是很多服务器运维会遇到的真实场景:服务器在机房里,没有接显示器,你也不知道它的 IP 是多少,怎么进去配置?
几个可行的思路。第一,如果服务器支持 IPMI 或 BMC 带外管理,通过带外管理口登录,就相当于远程看到了屏幕和键盘,什么问题都好解决。第二,如果服务器之前配过 DHCP,可以去路由器的 DHCP 租约列表里找它的 IP。第三,如果以上都不行,可能需要接上显示器和键盘,进系统后用 nmcli 重新配置网络。
还有一种情况是系统装了但网络服务没起来。这时候可以进单用户模式或者救援模式,手动启动 NetworkManager:
sudo systemctl start NetworkManager sudo systemctl enable NetworkManagerenable 是为了让它在下次开机时自动启动。很多人只 start 不 enable,结果重启之后网络又没了,白忙一场。
5. 桌面环境、开发工具链与常用软件的落地安装
5.1 给服务器装上 UKUI 图形界面
openEuler 最小化安装是没有图形界面的,但如果你确实需要,可以后续安装 UKUI。UKUI 是 openEuler 社区主推的桌面环境,基于 Qt 开发,界面风格比较接近 Windows,上手门槛低。
安装 UKUI 的命令:
sudo dnf install ukui装完之后设置默认启动图形界面:
sudo systemctl set-default graphical.target然后重启系统,应该就能看到图形登录界面了。如果重启后还是命令行,可能是显示管理器没启动,检查一下 lightdm 服务:
sudo systemctl enable lightdm sudo systemctl start lightdm这里有个经验:在 VMware 里装 UKUI,建议把虚拟机的显存调大一点(比如 128MB),否则桌面可能会显示异常或者卡顿。另外,UKUI 对内存的占用比 GNOME 小,但依然建议至少 4GB 内存。
5.2 Docker 与常用运行环境的安装
openEuler 的官方源里包含 Docker,但版本可能不是最新的。如果你只是需要基本的容器功能,直接装官方源的就行:
sudo dnf install docker sudo systemctl enable docker sudo systemctl start docker装完之后验证一下:
sudo docker run hello-world如果能看到欢迎信息,说明 Docker 装好了。但如果你需要特定版本的 Docker,或者需要 Docker Compose,建议参考 Docker 官方文档配置额外的软件源。
Python 环境方面,openEuler 通常自带 Python 3,但版本可能偏旧。如果你需要管理多个 Python 版本,Miniconda 是个不错的选择。下载 Miniconda 安装脚本后执行:
bash Miniconda3-latest-Linux-x86_64.sh按照提示一步步走就行。装完之后记得把 conda 加入 PATH,或者重新打开终端。
Git 的安装更简单:
sudo dnf install git装完之后配置一下用户名和邮箱:
git config --global user.name "你的名字" git config --global user.email "你的邮箱"5.3 数据库与中间件的部署注意事项
在 openEuler 上装 MySQL 或者 Oracle 这类数据库,有几个坑要提前知道。
MySQL 方面,openEuler 的源里可能有 MariaDB 而不是 MySQL,两者虽然兼容但细节有差异。如果你明确需要 MySQL,建议去 MySQL 官网下载对应的 RPM 包或者配置官方源。安装完成后,MySQL 的初始密码通常在日志文件里,用这个命令找:
sudo grep 'temporary password' /var/log/mysqld.logOracle 19c 在 openEuler 上的安装相对复杂,因为 Oracle 官方并不直接支持 openEuler,需要做一些兼容性处理。核心难点在于依赖包的版本匹配和内核参数的调整。建议在装之前先确认 openEuler 的版本和 Oracle 19c 的兼容性要求,不匹配的话可能需要降级或升级某些系统组件。
Docker 装好之后,很多中间件都可以用容器方式跑,这样比直接在系统上装要干净得多。比如 Redis、Nginx 这些,用 Docker 跑既方便又不会污染系统环境。
5.4 文件权限与压缩包处理的日常操作
openEuler 的文件权限管理和标准 Linux 一致,用 chmod、chown、chgrp 这三个命令基本能覆盖所有场景。但有一个细节值得注意:openEuler 默认启用了 SELinux,这会导致某些操作即使权限对了也会被拒绝。如果你遇到"明明权限没问题但就是访问不了"的情况,先检查 SELinux 状态:
getenforce如果返回 Enforcing,说明 SELinux 在起作用。临时关闭可以用:
sudo setenforce 0但永久关闭需要改配置文件 /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=disabled,然后重启。不过我不建议直接关闭 SELinux,更好的做法是学习如何配置 SELinux 策略,或者至少用 permissive 模式而不是 disabled。
tar 包的解压是日常操作,openEuler 自带的 tar 命令支持 gzip、bzip2、xz 等多种压缩格式。解压 .tar.gz 文件:
tar -xzvf package.tar.gz解压 .tar.xz 文件:
tar -xJvf package.tar.xz参数里的 x 表示解压,z 表示 gzip,J 表示 xz,v 表示显示过程,f 表示指定文件名。这几个参数组合很常用,记住就行。
6. 安装后必做的系统调优与踩坑复盘
6.1 软件源替换与更新策略
openEuler 默认的软件源是官方源,国内访问速度可能一般。如果你觉得 dnf 装软件太慢,可以考虑替换成国内镜像源。openEuler 的源配置文件在 /etc/yum.repos.d/ 目录下,通常有一个 openEuler.repo 文件。
替换源之前先备份原文件:
sudo cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak然后把文件里的 baseurl 改成国内镜像地址。改完之后清理缓存并重建:
sudo dnf clean all sudo dnf makecache更新系统的时候,建议不要盲目执行 dnf update。因为大版本更新可能会引入不兼容的变更,尤其是生产环境。更稳妥的做法是只更新安全补丁:
sudo dnf update --security这样只装安全相关的更新,风险可控。
6.2 SSH 服务加固与远程访问配置
装完系统之后,如果要从其他机器 SSH 登录,需要确保 sshd 服务在运行:
sudo systemctl status sshd如果没运行,启动并设为开机自启:
sudo systemctl enable sshd sudo systemctl start sshd安全加固方面,建议修改 SSH 默认端口(比如从 22 改成其他端口),禁用 root 直接登录,改用普通用户登录后再 sudo。这些配置在 /etc/ssh/sshd_config 文件里改:
Port 2222 PermitRootLogin no PasswordAuthentication yes改完之后重启 sshd 服务生效。注意改端口之前先确认防火墙放行了新端口,否则改完就连不上了,只能去机房接显示器。
防火墙方面,openEuler 默认使用 firewalld。查看当前规则:
sudo firewall-cmd --list-all放行某个端口:
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reloadpermanent 表示永久生效,reload 让规则立即生效。
6.3 我踩过的几个典型坑与排查思路
坑一:装完系统 ping 不通外网。排查思路是自下而上:先看网卡是否 UP,再看是否有 IP,再看网关是否可达,最后看 DNS 是否配置正确。我遇到过一次是 DNS 没配,能 ping 通 IP 但域名解析不了,加上 DNS 就好了。
坑二:VMware 里装完 UKUI 后桌面黑屏。这个问题通常是显存不够或者 3D 加速没开。解决办法是在 VMware 设置里把显存调到 128MB,并勾选"加速 3D 图形"。如果还不行,试试在虚拟机设置里关闭 3D 加速,用软件渲染。
坑三:dnf 装软件报错"无法解析主机"。这基本就是网络或者 DNS 问题。先确认能 ping 通外网 IP,如果 IP 能通但域名不通,就是 DNS 的问题。检查 /etc/resolv.conf 里有没有配 DNS 服务器。
坑四:SELinux 导致服务启动失败。表现是服务启动时报权限错误,但文件权限明明是对的。这时候看 /var/log/audit/audit.log 里的 SELinux 拒绝记录,或者临时 setenforce 0 测试一下。如果确认是 SELinux 问题,可以用 semanage 或者 restorecon 来修复上下文,而不是直接关闭 SELinux。
坑五:改了 SSH 端口之后连不上。九成是防火墙没放行新端口。解决办法是接显示器进系统,放行端口后再试。所以改 SSH 端口之前,一定要先放行防火墙,再改配置,最后重启服务,顺序不能乱。
6.4 系统监控与日常维护的实用命令
装完系统只是开始,日常维护才是重头戏。几个我常用的命令:
查看系统负载和运行时间:
uptime查看内存使用:
free -h查看磁盘使用:
df -h查看某个目录的大小:
du -sh /var/log查看系统日志:
journalctl -xe这个命令在排查服务启动失败时特别有用,它会显示最近的错误日志。
查看某个服务的状态:
systemctl status 服务名这些命令看起来简单,但组合起来能解决大部分日常问题。我的习惯是每天上班第一件事,先 uptime 和 df -h 看一眼,确认系统负载和磁盘空间正常,心里有底。
最后分享一个我个人觉得很有用的小技巧:装完系统后,把关键的配置信息(IP 地址、SSH 端口、root 密码提示、装的软件列表)记在一个文本文件里,放在安全的地方。时间一长,这些信息很容易忘,有个记录能省很多事。