努力
加油

如何在阿里云ECS上正确配置CentOS 7.8 64位系统镜像?

在阿里云 ECS 上配置 CentOS 7.8,核心难点不在于“安装”,而在于“网络连通性”和“源镜像源切换”。

因为 CentOS 官方已于 2024 年 6 月 30 日停止维护(EOL),且国内默认 yum 源往往指向海外或已失效的仓库,导致 yum install 报错、下载超时是常态。此外,CentOS 7 内核较老,网卡命名规则(ens5 还是 eth0)也常让新手踩坑。

以下是一套经过验证的、生产环境可用的配置流程,重点解决“能上网”和“能装包”两个问题。

第一步:基础环境检查与初始化

登录 ECS 后,不要急着改配置,先确认当前状态。

  1. 检查系统版本

    cat /etc/redhat-release
    # 应显示 CentOS Linux release 7.8.2003 (Core)
  2. 检查主机名与 IP

    hostname
    ip addr show

    注意:阿里云默认使用 ens5 等动态命名,而非传统的 eth0。如果后续需要绑定静态 IP 或修改配置文件,务必以 ip addr 看到的实际接口名为准。

  3. 关闭防火墙和 SELinux(开发/测试环境推荐)
    生产环境建议只开特定端口,但如果是为了快速调试,直接关闭最省事:

    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

第二步:配置 YUM 源(最关键步骤)

这是绝大多数人卡住的地方。CentOS 7.8 的原始镜像源已归档或不可用,必须切换到国内镜像站。强烈建议使用阿里源或清华源。

方案 A:一键脚本(推荐,最快)

执行以下命令,自动备份原配置并替换为阿里云镜像源:

# 备份原 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云 CentOS 7 镜像源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 或者使用清华源(备用)
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/help/CentOS/

# 清除缓存并生成新缓存
yum clean all
yum makecache

方案 B:手动配置 EPEL 源

很多常用软件(如 nginx, docker-ce, htop)不在基础源里,需要 EPEL。

yum install -y epel-release
yum makecache

避坑指南:如果你之前手动改过源文件,记得清理 /var/cache/yum 目录下的残留数据,否则可能读到旧的错误列表。


第三步:网络连通性测试

配置完源之后,立刻验证是否能正常访问网络。

# 测试 DNS 解析
nslookup www.baidu.com

# 测试网络连接
ping -c 4 www.baidu.com

# 测试 yum 能否拉取元数据
yum list | head -n 20

如果 ping 不通,通常是安全组没开 ICMP 协议,或者路由问题;如果 ping 通但 yum 报错,99% 是源地址不对或 DNS 配置问题(检查 /etc/resolv.conf 是否包含 nameserver 223.5.5.5 或 114.114.114.114)。


第四步:安装常用工具与环境

现在可以顺畅地安装软件了。以下是一键安装常用运维工具的命令:

yum install -y 
    vim-enhanced 
    wget 
    curl 
    git 
    net-tools 
    tree 
    htop 
    unzip 
    zip 
    ntpdate 
    lrzsz
  • net-tools: 提供 ifconfig 和 route 命令(新版系统默认用 ip 命令,但老习惯保留)。
  • lrzsz: 提供 rz/sz 命令,方便从 Windows 拖拽上传小文件到服务器。

第五步:SSH 安全加固(可选但建议)

CentOS 7 默认允许 root 远程登录,这在公网环境下有风险。建议:

  1. 创建普通用户并赋予 sudo 权限

    useradd admin
    echo "your_password" | passwd --stdin admin
    visudo
    # 找到 %wheel ALL=(ALL) ALL 这一行,确保没有被注释
    usermod -aG wheel admin
  2. 禁用 Root 密码登录(改用密钥)
    编辑 /etc/ssh/sshd_config:

    PermitRootLogin no
    PasswordAuthentication no

    重启 SSH 服务:systemctl restart sshd

    警告:在执行此操作前,请确保你已经通过密钥方式登录成功,或者保留了控制台 VNC 访问权限,否则一旦锁死,只能去阿里云控制台强制重置密码或重装系统。


第六步:系统优化小贴士

  1. 时间同步
    CentOS 7 默认使用 chronyd 而不是 ntpd。

    chronyc sources -v

    如果时间不同步,手动同步一次:

    ntpdate ntp.aliyun.com
    hwclock -w
  2. 磁盘扩容识别
    如果你在阿里云控制台扩容了云盘,进入系统后执行:

    lsblk

    如果发现空间未增加,可能需要运行 growpart 工具(需先安装 cloud-utils-growpart)来扩展分区,然后 resize2fs 扩展文件系统。

  3. 内核参数优化(TCP 提速)
    对于高并发场景,可以在 /etc/sysctl.conf 末尾添加:

    net.core.somaxconn = 1024
    net.ipv4.tcp_max_syn_backlog = 1024
    net.ipv4.ip_local_port_range = 1024 65535
    net.ipv4.tcp_tw_reuse = 1

    然后执行 sysctl -p 生效。


常见问题排查

  • Q: yum install 报 "Cannot find a valid baseurl for repo: base/7/x86_64"

    • A: 源配置失败。请重新执行第二步的方案 A,并确保 /etc/yum.repos.d/CentOS-Base.repo 内容正确。同时检查 /etc/resolv.conf 是否有有效的 nameserver。
  • Q: 无法 ping 通百度,但内网 IP 能 ping 通

    • A: 检查 ECS 实例是否绑定了弹性公网 IP(EIP)。如果没有,需要在阿里云控制台绑定一个 EIP,并在安全组中放行 ICMP(入方向)和所有 TCP/UDP(出方向)。
  • Q: 网卡名称不是 eth0,而是 ens5,怎么办?

    • A: 不需要改。现代 Linux 和网络管理工具(如 cloud-init, NetworkManager)都支持动态命名。除非你有非常老旧的脚本依赖 eth0,否则无需修改 /etc/sysconfig/network-scripts/ifcfg-ens5 中的 NAME 字段,保持默认即可。

按照以上步骤操作,你的 CentOS 7.8 实例就能达到“开箱即用”的稳定状态。如果遇到具体报错,贴出错误日志,可以再进一步分析。