Linux 发行版选型与系统初始化实践
Linux 发行版选型与系统初始化实践
新项目立项时,第一个要拍板的技术决策往往不是中间件,而是服务器操作系统选什么。这个选择会影响后面两三年里所有服务的部署方式、排障手段和团队的知识积累。分享一下我这边沉淀下来的选型逻辑和初始化流程。
一、发行版选型:先看业务形态
Linux 发行版分两大主流派系,国内生产环境基本只在这两系里选:
| 派系 | 代表发行版 | 包管理 | 典型场景 |
|---|---|---|---|
| RedHat 系 | RHEL、CentOS、Rocky Linux、AlmaLinux | rpm + yum/dnf |
金融、运营商、政企等传统企业,占比最高 |
| Debian 系 | Debian、Ubuntu Server | deb + apt |
互联网公司、云原生/K8s 生态 |
选型上我的判断标准有两条:
- 团队熟悉度优先。维护成本里最贵的不是软件授权,是团队踩坑经验的积累。上一套系统工程师熟的发行版,比”据说更好”的陌生发行版值钱得多。
- 看未来的支持周期。CentOS 8 提前停服、CentOS 7 也在 2024 年走到尽头后,新项目我会优先 Rocky Linux / AlmaLinux(RHEL 的二进制兼容替代),存量机器逐步规划迁移;云上新建的容器化集群则倾向 Ubuntu Server,K8s 生态对 Debian 系的适配更积极。
实际对比中容易踩的差异点记一下:
| 对比项 | RedHat 系 | Debian 系 |
|---|---|---|
| 装软件 | yum install nginx |
apt install nginx |
| 服务管理 | systemctl |
systemctl |
| 网络配置 | /etc/sysconfig/network-scripts/ |
/etc/netplan/ |
| 防火墙 | firewalld |
ufw |
| SELinux | 默认开启(坑多,要主动处理) | 默认 AppArmor |
国产化环境(政企信创)还会遇到 openEuler、银河麒麟、统信 UOS、龙蜥等,基本都是基于上述两系衍生,包管理习惯可以平移,主要是要提前确认依赖软件的兼容性。
二、装完系统先做这几件事
新机器到手,我按“四件套”顺序初始化:主机名 → 时间 → 源 → 加固。
1. 主机名规范
主机名不是随便起的,要让人一眼看懂这台机器是干什么的。我这边用的规范是 业务-环境-编号:
1 | # 示例:商品服务生产第 3 台 / MySQL 测试库第 1 台 |
2. 时间同步
时间不同步是生产事故的高发元凶——日志对不上、证书校验失败、分布式事务错乱都跟它有关。初始化时直接用 chrony 指向国内 NTP 源:
1 | timedatectl set-timezone Asia/Shanghai # 时区必须设对 |
顺手养成记录时间戳的习惯,备份文件的命名里带时间,恢复时才知道用哪份:
1 | TS=$(date +%Y%m%d_%H%M%S) |
3. 更换软件源
海外官方源在国内拉包又慢又容易超时,装机后第一件事就是把源切到国内镜像。以阿里云为例,RedHat 系:
1 | mkdir /etc/yum.repos.d/bak |
Debian 系(Ubuntu 22.04 举例):
1 | cp /etc/apt/sources.list /etc/apt/sources.list.bak |
4. 内核/版本确认
接手存量机器时第一件事永远是确认系统版本,判断后续命令兼容性:
1 | uname -r # 当前运行内核(看 el7/el8 后缀判断系) |
三、初始化检查清单(贴机房/贴云主机都适用)
这套清单我每次装机都会过一遍,既是操作记录也是交接文档:
- 主机名符合
业务-环境-编号规范 - 时区
Asia/Shanghai、时间同步正常(timedatectl确认) - 软件源已切换国内镜像、
makecache通过 - SSH 已加固(密钥登录、禁 root 直登、改端口)——详见网络加固那篇
- 防火墙按业务最小放行
- 常规目录已按规范预建(
/data、/backup等)
小结
发行版选型没有绝对最优,只有“团队能长期维护”和“生命周期内不踩停服坑”这两个硬条件;初始化流程固定成清单后,新机器从到手到可交付基本控制在半小时内,也为后面所有的故障排查打好了基线。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuminDream's Blogs!


