当前位置:首页 > 技术 > 正文内容

CentOS系统安装与常见问题解决方案

访客 技术 2026年7月5日 2

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 虚拟环境

  1. 启用 Hyper-V 功能:进入"控制面板" → "程序和功能" → "启用或关闭 Windows 功能",勾选"Hyper-V"并确认安装。
  2. 启动管理工具:开始菜单搜索"Hyper-V 管理器"并打开。
  3. 创建虚拟交换机
    • 选择"虚拟交换机管理器"。
    • 新建外部网络类型交换机(如命名为 VMWAN),绑定主机当前使用的网卡(Wi-Fi 或有线)。
  4. 新建虚拟机
    • 指定名称及存储路径,建议独立目录便于管理。
    • 选择"第一代"虚拟机类型(适用于非 Windows 操作系统)。
    • 分配内存(例如 2GB),连接至先前创建的虚拟交换机。
    • 创建动态扩展硬盘(例如 50GB)。
    • 加载 ISO 镜像作为安装介质。

3. 执行系统安装

  1. 启动虚拟机后,在引导界面选择"Install CentOS Linux 8"。
  2. 设置语言偏好(中文支持可选)。
  3. 自动分区配置:接受默认方案,点击"完成"继续。
  4. 网络设置:
    • 开启网卡并关联之前建立的虚拟交换机。
    • 确保网络状态显示为"已连接"。
  5. 软件源配置(提高安装效率):
    • 替换为阿里云源地址:
      http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os
  6. 安装类型选择"最小化安装",节省磁盘空间。
  7. 时区设置为"Asia/Shanghai"。
  8. 设定 root 用户密码并创建普通用户账户。
  9. 等待安装进程结束,重启后即可登录系统。

常见问题排查与优化配置

一、系统无法联网的处理方式

现象描述:系统安装完成后 ping 外部地址失败,无网络访问能力。

根本原因:CentOS 默认未启用网卡开机自启。

解决方案

  1. 查看网卡设备名:
    ip addr(通常为 ens33 或类似命名)
  2. 编辑对应接口配置文件:
    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
  3. ONBOOT=no 修改为 ONBOOT=yes
  4. 保存退出后重启系统:
    reboot
  5. 验证连通性:
    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)

  1. 备份原配置:
    sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
  2. 清除旧源:
    sudo rm -f /etc/yum.repos.d/*.repo
  3. 下载新源定义:
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
  4. 重建缓存并升级系统:
    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 下载

  1. 安装编译依赖:
    sudo yum install -y gnutls-devel openssl-devel texinfo
  2. 下载最新版源码:
    tar -xzf wget-1.25.0.tar.gz
    cd wget-1.25.0
  3. 编译安装:
    ./configure --with-ssl=openssl --prefix=/usr/local
    make && sudo make install
  4. 验证版本:
    /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 等现代标准开发需求。

  1. 安装基础编译环境:
    sudo yum install -y gcc gcc-c++ make
  2. 下载 GCC 10.2.0 源码包:
    https://mirrors.aliyun.com/gnu/gcc/gcc-10.2.0/
  3. 解压并进入目录:
    tar -zxvf gcc-10.2.0.tar.gz
    cd gcc-10.2.0
  4. 下载依赖组件:
    contrib/download_prerequisites
  5. 创建构建目录:
    mkdir build && cd build
  6. 生成 Makefile:
    ../configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib --enable-checking=release
  7. 若提示缺少 GMP/MPFR/MPC 库,执行:
    sudo yum install -y gmp-devel mpfr-devel libmpc-devel
  8. 开始编译(耗时较长):
    make -j$(nproc)
  9. 安装到系统:
    sudo make install
  10. 更新动态链接库:
    echo '/usr/local/lib64' | sudo tee /etc/ld.so.conf.d/gcc-local.conf
    sudo ldconfig
  11. 验证版本:
    gcc -v
标签: CentOS

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。