在云服务器上安装 CentOS、Ubuntu 或 Debian 等 Linux 发行版时,需注意以下关键事项(涵盖选型、安装、安全、运维及云平台特性):
一、安装前注意事项
-
明确发行版生命周期与支持状态
- ❗ CentOS 8 已于 2021-12-31 停止维护;CentOS Stream 是滚动预发布流(非稳定生产版),不建议用于生产环境。
- ✅ 推荐替代方案:
- CentOS 替代:Rocky Linux、AlmaLinux(100% 二进制兼容 RHEL,长期免费支持)、Oracle Linux(含免费 UYK 支持)。
- Ubuntu:优先选择 LTS 版本(如 22.04 LTS / 24.04 LTS),提供 5 年标准支持 + 5 年扩展安全维护(ESM,需注册)。
- Debian:推荐 stable 版本(如 Debian 12 “Bookworm”),稳定可靠,但软件包版本较旧;避免使用
testing/unstable。
-
云平台镜像选择原则
- ✅ 优先使用云厂商官方提供的优化镜像(如阿里云的 Alibaba Cloud Linux、腾讯云的 TencentOS Server、AWS 的 Amazon Linux 2/2023),它们已预装云内核、驱动(如 NVMe、virtio)、cloud-init、监控X_X等,性能与兼容性更优。
- ❌ 避免上传自定义 ISO 手动安装(除非特殊需求),易导致网络/磁盘驱动缺失、SSH 无法连接、元数据服务(IMDS)不可用等问题。
-
实例规格与系统匹配
- 内存 ≥ 1GB:Debian/Ubuntu 最小可运行,但建议 ≥ 2GB;
- CentOS/Rocky/AlmaLinux 建议 ≥ 2GB(尤其启用 systemd-journald + auditd 时);
- 小内存实例(≤ 1GB)慎用 swap(云盘 I/O 延迟高),可考虑禁用 swap 或使用 zram。
二、安装过程关键点(以云平台控制台部署为例)
| 项目 | 注意事项 |
|---|---|
| 分区方案 | ✅ 默认 LVM 或简单分区即可;云盘通常为单块 NVMe/virtio-blk,无需复杂 RAID; ⚠️ 避免 /boot 单独挂载(UEFI 模式下可能引发 GRUB 启动问题);✅ 生产环境建议 / + /home 分离(便于重装系统保留数据)。 |
| 时区与语言 | ✅ 安装时设为 Asia/Shanghai(或实际所在地),避免日志时间混乱;语言建议 en_US.UTF-8(兼容性最好,中文环境易引发编码/脚本问题)。 |
| 用户与 SSH | ✅ 创建非 root 用户(如 admin),禁用 root 密码登录;✅ 强制使用 SSH 密钥认证(云平台通常自动注入公钥到 ~/.ssh/authorized_keys);❌ 切勿设置弱密码或开启 PermitRootLogin yes。 |
| cloud-init 配置 | ✅ 确保启用(默认开启):自动获取 IP、主机名、SSH 密钥、用户数据(user-data)执行初始化脚本; ⚠️ 若需自定义初始化(如安装软件、配置服务),通过 user-data(cloud-config 格式)实现,而非手动脚本。 |
三、安装后必做安全与优化项
-
基础安全加固
- 更新系统:
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # Rocky/AlmaLinux/CentOS Stream sudo dnf update -y # 或 yum update -y(旧版) - 配置防火墙(默认启用):
sudo ufw enable && sudo ufw allow OpenSSH # Ubuntu/Debian sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload # RHEL系 - 禁用不必要服务(如
postfix,avahi-daemon,bluetooth); - 审计日志:启用
auditd(RHEL系)或rsyslog日志集中管理。
- 更新系统:
-
云平台特有配置
- ✅ 验证元数据服务可达性(关键!):
curl -s http://169.254.169.254/latest/meta-data/instance-id # 阿里云/AWS/腾讯云通用 - ✅ 检查云盘识别:
lsblk/nvme list/lshw -class disk,确认系统盘为/dev/vda或/dev/nvme0n1; - ✅ 配置 NTP 时间同步(云环境必须):
sudo timedatectl set-ntp true sudo systemctl restart systemd-timesyncd # Debian/Ubuntu # 或 chrony(RHEL系推荐)
- ✅ 验证元数据服务可达性(关键!):
-
性能与可靠性优化
- 调整 I/O 调度器(云盘推荐
none或kyber):echo 'echo none > /sys/block/vda/queue/scheduler' | sudo tee -a /etc/rc.local - 优化网络参数(如
net.ipv4.tcp_tw_reuse=1,vm.swappiness=1); - 启用
fail2ban防暴力破解 SSH; - 配置自动安全更新(Ubuntu ESM / Debian unattended-upgrades / RHEL
dnf-automatic)。
- 调整 I/O 调度器(云盘推荐
四、特别提醒(避坑指南)
- ⚠️ 不要修改
/etc/fstab中的云盘 UUID:云平台可能动态变更设备名,建议用LABEL=或PARTUUID=(通过blkid查看); - ⚠️ 禁止禁用 cloud-init:否则可能导致 SSH 密钥丢失、主机名重置、网络配置失效;
- ⚠️ Swap 文件谨慎创建:云盘随机 I/O 性能差,swap 使用会显著拖慢系统;优先通过扩容内存解决;
- ⚠️ 备份策略前置:云平台快照 ≠ 备份!需结合 rsync/borg/rclone 实现应用数据异地备份;
- ⚠️ 合规与审计要求:X_X/X_X场景需满足等保2.0,需额外配置日志审计、文件完整性校验(AIDE)、内核加固(SELinux/AppArmor)。
✅ 推荐实践清单(部署后5分钟完成)
# 1. 更新 & 升级
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 2. 创建普通用户并授权
sudo adduser deploy && sudo usermod -aG sudo deploy
# 3. 禁用 root 登录
sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl restart sshd
# 4. 启用防火墙
sudo ufw allow OpenSSH && sudo ufw enable
# 5. 验证元数据服务
curl -s http://169.254.169.254/latest/meta-data/instance-id && echo "✅ Metadata OK"
如需进一步帮助(例如:
🔹 各云平台(阿里云/腾讯云/AWS)具体镜像选择指引
🔹 自动化部署脚本(cloud-init/user-data 示例)
🔹 SELinux/AppArmor 策略配置
🔹 容器化环境(Docker/Podman)预装建议
欢迎随时提出,可为您定制详细方案。
CDNK博客