CentOS系统安装与常见问题解决方案
CentOS 安装流程详解
本文以 CentOS 8 为例,介绍在虚拟化环境中完成系统部署的全过程,并针对常见的使用问题提供解决方法。
1. 获取系统镜像文件
推荐从国内镜像站点下载以提升速度:
- 阿里云开源镜像站:
https://mirrors.aliyun.com/centos/8/isos/x86_64/ - 重庆大学镜像源:
http://mirrors.cqu.edu.cn/CentOS/8.3.2011/isos/x86_64/
2. 配置 Hyper-V 虚拟环境
- 启用 Hyper-V 功能:进入"控制面板" → "程序和功能" → "启用或关闭 Windows 功能",勾选"Hyper-V"并确认安装。
- 启动管理工具:开始菜单搜索"Hyper-V 管理器"并打开。
- 创建虚拟交换机:
- 选择"虚拟交换机管理器"。
- 新建外部网络类型交换机(如命名为 VMWAN),绑定主机当前使用的网卡(Wi-Fi 或有线)。
- 新建虚拟机:
- 指定名称及存储路径,建议独立目录便于管理。
- 选择"第一代"虚拟机类型(适用于非 Windows 操作系统)。
- 分配内存(例如 2GB),连接至先前创建的虚拟交换机。
- 创建动态扩展硬盘(例如 50GB)。
- 加载 ISO 镜像作为安装介质。
3. 执行系统安装
- 启动虚拟机后,在引导界面选择"Install CentOS Linux 8"。
- 设置语言偏好(中文支持可选)。
- 自动分区配置:接受默认方案,点击"完成"继续。
- 网络设置:
- 开启网卡并关联之前建立的虚拟交换机。
- 确保网络状态显示为"已连接"。
- 软件源配置(提高安装效率):
- 替换为阿里云源地址:
http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os
- 替换为阿里云源地址:
- 安装类型选择"最小化安装",节省磁盘空间。
- 时区设置为"Asia/Shanghai"。
- 设定 root 用户密码并创建普通用户账户。
- 等待安装进程结束,重启后即可登录系统。
常见问题排查与优化配置
一、系统无法联网的处理方式
现象描述:系统安装完成后 ping 外部地址失败,无网络访问能力。
根本原因:CentOS 默认未启用网卡开机自启。
解决方案:
- 查看网卡设备名:
ip addr(通常为 ens33 或类似命名) - 编辑对应接口配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 - 将
ONBOOT=no修改为ONBOOT=yes - 保存退出后重启系统:
reboot - 验证连通性:
ping -c 4 www.baidu.com
二、更换软件源并更新系统
使用国内镜像加速 YUM 包管理操作。
1. 配置 DNS 解析
sudo vi /etc/resolv.conf
# 添加以下内容
nameserver 8.8.8.8
nameserver 8.8.4.4
2. 替换为阿里云 YUM 源(适用于 CentOS 8)
- 备份原配置:
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak - 清除旧源:
sudo rm -f /etc/yum.repos.d/*.repo - 下载新源定义:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo - 重建缓存并升级系统:
sudo yum clean all
sudo yum makecache
sudo yum update -y
三、基础命令与工具安装
1. 安装 ifconfig 工具
最小化安装中缺失该命令,需手动安装 net-tools:
sudo yum install -y net-tools
完成后可通过 ifconfig 查看 IP 地址信息。
2. 安装 vim 文本编辑器
sudo yum install -y vim-enhanced
3. 安装压缩解压工具
sudo yum install -y zip unzip
4. 升级 wget 支持 HTTPS 下载
- 安装编译依赖:
sudo yum install -y gnutls-devel openssl-devel texinfo - 下载最新版源码:
tar -xzf wget-1.25.0.tar.gz
cd wget-1.25.0 - 编译安装:
./configure --with-ssl=openssl --prefix=/usr/local
make && sudo make install - 验证版本:
/usr/local/bin/wget -V
四、防火墙管理(firewalld)
CentOS 7 及以上版本采用 systemctl 和 firewall-cmd 进行服务控制。
1. 基础服务操作
# 启动防火墙
sudo systemctl start firewalld
# 开机自启
sudo systemctl enable firewalld
# 查看运行状态
sudo systemctl status firewalld
# 重新加载规则
sudo firewall-cmd --reload
2. 开放端口示例
# 永久开放 TCP 8080 端口
sudo firewall-cmd --permanent --add-port=8080/tcp
# 批量开放端口范围
sudo firewall-cmd --permanent --add-port=9001-9100/tcp
# 允许特定服务(如 HTTP)
sudo firewall-cmd --permanent --add-service=http
# 生效配置
sudo firewall-cmd --reload
3. IP 访问控制
# 允许单个 IP 访问
sudo firewall-cmd --permanent --add-source=192.168.1.100
# 允许整个子网
sudo firewall-cmd --permanent --add-source=192.168.1.0/24
# 使用富规则限制访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.200" port protocol="tcp" port="22" reject'
五、端口占用查询
定位被占用的网络端口常用两种方式:
1. 使用 lsof 命令
# 查询哪个进程占用了 3306 端口
lsof -i :3306
# 列出所有监听中的 TCP 端口
lsof -i tcp -sTCP:LISTEN
2. 使用 netstat 命令
# 显示所有监听端口及其所属进程
netstat -tulnp | grep :8080
参数说明:
-t: TCP 协议
-u: UDP 协议
-l: 监听状态
-n: 数字化显示地址和端口
-p: 显示进程名
六、GCC 编译器升级至高版本
用于支持 C++17/20 等现代标准开发需求。
- 安装基础编译环境:
sudo yum install -y gcc gcc-c++ make - 下载 GCC 10.2.0 源码包:
https://mirrors.aliyun.com/gnu/gcc/gcc-10.2.0/ - 解压并进入目录:
tar -zxvf gcc-10.2.0.tar.gz
cd gcc-10.2.0 - 下载依赖组件:
contrib/download_prerequisites - 创建构建目录:
mkdir build && cd build - 生成 Makefile:
../configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib --enable-checking=release - 若提示缺少 GMP/MPFR/MPC 库,执行:
sudo yum install -y gmp-devel mpfr-devel libmpc-devel - 开始编译(耗时较长):
make -j$(nproc) - 安装到系统:
sudo make install - 更新动态链接库:
echo '/usr/local/lib64' | sudo tee /etc/ld.so.conf.d/gcc-local.conf
sudo ldconfig - 验证版本:
gcc -v