CentOS 7 服务器初始化:从 0 到 1 的安全高效配置指南

前言

对于运维或开发人员而言,新到手的 CentOS 7 服务器绝非 “开箱即用”—— 默认的国外软件源下载缓慢、系统缺乏基础工具、防火墙未做安全配置,这些问题都会影响后续使用效率与服务器安全性。本文整理了 CentOS 7 服务器初始化的全套实操方案,涵盖源配置、系统更新、网络验证、时间同步、防火墙等核心环节,每一步均提供可直接复用的命令与安全提示,帮你快速搭建稳定、安全的服务器基础环境。

一、服务器初始化核心步骤

1. 配置国内 Yum 源:加速软件安装

CentOS 默认的国外 Yum 源下载速度慢,甚至可能因网络问题失败,替换为国内源(阿里云、清华源)是初始化的第一步。

操作步骤
# 1. 备份原Yum源(防止配置出错后无法恢复)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# 2. 下载国内源(二选一,推荐阿里云,稳定性更强)
# 阿里云CentOS 7基础源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 清华源(备选):sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo# 3. 配置EPEL源(提供官方源外的额外软件,如htop、tree)
sudo yum install -y epel-release
sudo sed -e 's|^metalink=|#metalink=|g' \-e 's|^#baseurl=|baseurl=|g' \-e 's|^//download.fedoraproject.org/pub|//mirrors.aliyun.com|g' \-e 's|http://download.example|https://mirrors.aliyun.com|g' \-i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo# 4. 清理旧缓存+生成新缓存(让新源生效)
sudo yum clean all
sudo yum makecache

可选:如果想用清华源,将第2步命令替换为: sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo

[root@localhost yum.repos.d]# rz -E
rz waiting to receive.
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   4584      0 --:--:-- --:--:-- --:--:--  4595
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base extras updates
Cleaning up list of fastest mirrors
[root@localhost yum.repos.d]# yum makecache 
已加载插件:fastestmirror, langpacks
Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                   | 2.9 kB  00:00:00     
(1/10): base/7/x86_64/group_gz                                                                            | 153 kB  00:00:00     
(2/10): extras/7/x86_64/filelists_db                                                                      | 305 kB  00:00:00     
(3/10): extras/7/x86_64/other_db                                                                          | 154 kB  00:00:00     
(4/10): base/7/x86_64/other_db                                                                            | 2.6 MB  00:00:00     
(5/10): updates/7/x86_64/filelists_db                                                                     |  15 MB  00:00:01     
(6/10): updates/7/x86_64/other_db                                                                         | 1.6 MB  00:00:00     
(7/10): updates/7/x86_64/primary_db                                                                       |  27 MB  00:00:02     
base/7/x86_64/filelists_db     FAILED                                          
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/d6d94c7d406fe7ad4902a97104b39a0d8299451832a97f31d71653ba982c955b-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
base/7/x86_64/primary_db       FAILED                                          
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.cloud.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
extras/7/x86_64/primary_db     FAILED                                          
http://mirrors.aliyuncs.com/centos/7/extras/x86_64/repodata/e12dbf10e94bc2b33b1f45e026559bc8685728b139dddae0654d96bc624c5602-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
(8/10): base/7/x86_64/filelists_db                                                                        | 7.2 MB  00:00:00     
(9/10): base/7/x86_64/primary_db                                                                          | 6.1 MB  00:00:00     
(10/10): extras/7/x86_64/primary_db                                                                       | 253 kB  00:00:00     
元数据缓存已建立
[root@localhost yum.repos.d]# yum install -y epel-release
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 安装
--> 解决依赖关系完成依赖关系解决=================================================================================================================================Package                            架构                         版本                         源                            大小
=================================================================================================================================
正在安装:epel-release                       noarch                       7-11                         extras                        15 k事务概要
=================================================================================================================================
安装  1 软件包总下载量:15 k
安装大小:24 k
Downloading packages:
警告:/var/cache/yum/x86_64/7/extras/packages/epel-release-7-11.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
epel-release-7-11.noarch.rpm 的公钥尚未安装
epel-release-7-11.noarch.rpm                                                                              |  15 kB  00:00:00     
从 http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5来自       : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : epel-release-7-11.noarch                                                                                     1/1 验证中      : epel-release-7-11.noarch                                                                                     1/1 已安装:epel-release.noarch 0:7-11                                                                                                     完毕!

2. 系统更新 + 必备工具安装

更新系统可修复安全漏洞,安装基础工具能提升后续运维效率,这一步是服务器 “可用性” 的基础。

操作命令
# 1. 全量更新系统(内核更新需重启生效)
sudo yum update -y# 2. 安装高频运维工具(一键部署)
sudo yum install -y \vim-enhanced \    # 增强版编辑器(支持语法高亮)wget curl \       # 网络下载/请求工具telnet net-tools \ # 网络诊断(含ifconfig)bash-completion \ # 命令自动补全(输一半按Tab)lsof \            # 查看进程占用文件/端口sysstat \         # 系统性能监控(含iostat/sar)htop \            # 进程管理(比top更直观)tree \            # 树状展示目录结构git \             # 版本控制工具unzip \           # 解压ZIP文件lrzsz             # 终端文件传输(sz下载/rz上传)# 3. 开发环境可选(需编译软件时安装)
# sudo yum groupinstall -y "Development Tools"

3. 网络连接验证:确保基础通信正常

服务器无法联网会导致后续所有操作失败,需优先验证网络连通性与 DNS 解析能力。

验证步骤
# 1. 查看IP地址(确认网卡已启动)
ip addr show  # 或 ifconfig# 2. 测试DNS解析(能解析百度说明DNS正常)
ping -c 4 www.baidu.com  # -c 4:只发4个包,避免一直ping# 3. 测试外网连通性(直连IP,排除DNS问题)
ping -c 4 114.114.114.114# 4. 网络异常排查(查看网卡配置文件)
# 注意:网卡名可能是eth0/ens33,需根据实际情况修改
cat /etc/sysconfig/network-scripts/ifcfg-eth0

4. 配置主机名:便于服务器管理

默认主机名(如localhost)不便于识别,尤其是多服务器场景,需自定义有辨识度的主机名。

配置步骤
# 1. 查看当前主机名
hostname# 2. 设置新主机名(示例:centos7-master,可自定义)
sudo hostnamectl set-hostname centos7-master# 3. 修改hosts文件(避免软件因主机名解析失败报错)
sudo vim /etc/hosts
# 在文件末尾添加:127.0.0.1 centos7-master# 4. 立即生效(无需重启,重新登录终端也可)
bash

5. 时间同步:保证服务器时间准确

服务器时间偏差会导致日志时序混乱、证书验证失败等问题,需通过 chrony 服务同步标准时间。

配置步骤
# 1. 安装chrony(CentOS 7推荐时间同步工具,轻量稳定)
sudo yum install -y chrony# 2. 启动服务+设置开机自启
sudo systemctl start chronyd
sudo systemctl enable chronyd# 3. 强制立即同步时间
sudo chronyc -a makestep# 4. 验证同步状态
sudo chronyc sources -v  # 查看时间服务器连接情况
date  # 查看当前系统时间是否正确

6. 防火墙配置:筑牢服务器安全第一道防线

CentOS 7 提供iptablesfirewalld两种防火墙工具,核心原则是 “默认拒绝入站,只开放必要端口”,按需选择一种配置即可。

6.1 经典方案:iptables 配置

适合习惯直接控制规则的场景,需先关闭默认的 firewalld。

操作步骤
# 1. 停止并禁用firewalld(为iptables让路)
sudo systemctl stop firewalld
sudo systemctl disable firewalld# 2. 安装iptables服务(提供规则保存/开机自启功能)
sudo yum install -y iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables# 3. 设置默认安全策略(先做!拒绝所有入站,允许出站)
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT# 4. 基础必要规则(确保系统正常运行)
sudo iptables -A INPUT -i lo -j ACCEPT  # 允许本地回环(系统内部通信)
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  # 允许已建立连接的返回流量# 5. 开放常用端口(按需调整)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # SSH(远程管理必备,不可少)
sudo iptables -A INPUT -p icmp -j ACCEPT  # 允许PING(便于网络诊断)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # HTTP(Web服务)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # HTTPS(加密Web服务)
# 自定义端口示例:sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT# 6. 保存规则(否则重启后失效)+ 重启服务
sudo service iptables save
sudo systemctl restart iptables# 7. 验证规则(查看是否生效)
sudo iptables -L -v -n --line-numbers
6.2 默认方案:firewalld 配置

CentOS 7 原生工具,操作更简洁,适合快速配置。

操作步骤
# 1. 启动服务+设置开机自启(若未启动)
sudo systemctl start firewalld
sudo systemctl enable firewalld# 2. 查看当前开放的端口/服务
sudo firewall-cmd --list-all# 3. 开放常用服务/端口(--permanent表示永久生效)
sudo firewall-cmd --permanent --add-service=ssh  # SSH(必开)
sudo firewall-cmd --permanent --add-service=http  # HTTP
sudo firewall-cmd --permanent --add-service=https  # HTTPS
# 自定义端口示例:sudo firewall-cmd --permanent --add-port=8080/tcp# 4. 重新加载配置(让规则生效)
sudo firewall-cmd --reload# 5. 验证生效
sudo firewall-cmd --list-all
安全提示

若修改 SSH 端口(如从 22 改为 5922),需先开放新端口,再删除旧端口规则,避免远程连接断开:

sudo firewall-cmd --permanent --add-port=5922/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

二、初始化收尾:确保所有配置生效

完成上述步骤后,建议执行一次服务器重启,让内核更新、主机名等配置完全生效:

sudo reboot

重启后可通过以下命令验证核心配置:

  • 查看 Yum 源:yum repolist(国内源会显示 “aliyun” 或 “tsinghua”)

  • 查看主机名:hostname

  • 查看时间:date

  • 查看防火墙规则:iptables -L -n(或firewall-cmd --list-all

结尾


   ① 安装yum 网络源(国内源)(下载/用资源)   有外网
       做本地yum源   配置路径并且设置挂载        内网
        [local]
         name=local
         baseurl=file:///mnt
         enabled=1
         gpgcheck=0
         yum clean all &&  yum makecache         
         镜像挂载       最好设置永久性挂载   /etc/fstab

注意:用之前删除 国外源 或者备份!!


    ② 安装运维的必备工具 
    vim-enhanced \    # 加强版的vi编辑器
    wget \            # 命令行下载工具
    curl \            # 网络数据传输工具
    telnet \          # 网络诊断工具
    net-tools \       # 包含ifconfig等网络工具
    bash-completion \ # 命令自动补全增强
    lsof \            # 列出打开的文件
    sysstat \         # 系统性能监控工具(包含iostat, sar等)
    htop \            # 交互式进程查看器(比top更好用)
    tree \            # 以树状图列出目录内容
    git \             # 版本控制工具   前期我不用 等我们后期学完正在学CICD的时候会用
    unzip \           # 解压zip文件    tar.gz  
    lrzsz             # 提供sz(下载)、rz(上传)命令,方便Xshell等终端传输文件

    ③ 网络验证
       首先查看当前网卡有没有启动 和配置IP
       ping 域名 www.baidu.com      如果有问题  查看DNS配置  网卡有没有启动等 
    ④ 配置主机名  并且 设置主机映射 为了加快主机之间访问速度
    ⑤ 时间同步  chronyd(主(时间同步1分钟~5分钟会同步一次))  ntp
    ⑥ 防火墙 设置   安装并且设置 开放端口
    ⑦ 设置 ssh 端口  以及 用户的密码 (设置密码复杂性 数字 大小写 符号 并且设置18位以上)
         公钥和私钥登录
 

服务器初始化是运维工作的 “地基”—— 国内 Yum 源提升软件安装效率,系统更新与防火墙保障安全性,时间同步与主机名配置则为后续运维埋下便利伏笔。本文的每一步操作均经过实战验证,可直接应用于生产环境(建议先在测试机验证)。后续部署业务时,只需根据服务需求(如 MySQL 需开放 3306 端口、Redis 需开放 6379 端口)补充防火墙规则,即可快速上线服务。

如果在操作中遇到问题,可优先检查命令拼写、网络连通性或防火墙规则,也欢迎在评论区交流讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94544.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

32.Attention-注意力机制

不是所有的信息都是有用的&#xff0c;或者说重要的。我们应该把注意力放在他该在的地方。 在人工智能领域&#xff0c;注意力机制被广泛应用。他可以帮助模型关注与当前任务相关的特征&#xff0c;而忽略不重要的特征&#xff0c;以提高准确率。注意力机制本质&#xff1a;即通…

如何设计 “用户共创型” IP 成长社群模型?​

“用户共创型” IP 成长社群的核心&#xff0c;是从 “IP 单向输出” 转向 “IP 与用户共生”&#xff0c;让用户从 “被动接收者” 变为 “主动参与者”&#xff0c;通过 “需求共建、内容共造、价值共享” 形成闭环&#xff0c;既强化用户归属感&#xff0c;又为 IP 注入持续…

Windows 命令行:mkdir 命令

专栏导航 上一篇&#xff1a;Windows 命令行&#xff1a;dir 命令 回到目录 下一篇&#xff1a;MFC 第一章概述 本节前言 本节&#xff0c;我们来讲解一个常见的命令&#xff0c;mkdir 命令。 学习本节知识&#xff0c;需要你首先懂得如何打开一个命令行界面&#xff0c;…

Linux系统编程——进程(函数)

回调函数&#xff1a;atexit()原型&#xff1a; int atexit(void (*function)(void));功能&#xff1a; 注册进程退出前执行的函数参数&#xff1a; function 函数指针&#xff0c;指向void返回值void参数的函数指针返回值 成功 返回0失败 …

均胜电子上半年毛利率持续提升,汽车智能化与机器人业务多点突破

8月25日&#xff0c;全球领先的智能汽车科技解决方案提供商均胜电子&#xff08;600699.SH&#xff09;发布2025上半年业绩&#xff0c;报告期内公司实现营业收入约303.47亿元&#xff0c;同比增长12.07%&#xff1b;营业利润总额约12.47亿元&#xff0c;归母净利润同比增长11.…

【QT入门到晋级】进程间通信(IPC)-共享内存

前言 前面分享了几种IPC通信技术&#xff0c;都有成熟的交互机制&#xff08;阻塞和非阻塞方式交互&#xff09;&#xff0c;而本文分享的共享内存&#xff0c;更像是系统提供了一张“白纸”&#xff0c;让多个进程自己构建管理及安全机制&#xff0c;而有些场景只需要简单的机…

自动化测试概念与 Web 自动化实战(基于 Selenium)

在软件测试领域&#xff0c;自动化测试是提升测试效率、保障回归测试质量的核心手段。尤其对于 C 开发的项目&#xff0c;自动化测试能有效减少重复手工操作&#xff0c;避免新增功能对历史功能的影响。本文从自动化基础概念入手&#xff0c;详解自动化分类、Web 自动化测试核心…

NeRAF、ImVid论文解读

目录 一、NeRAF 1、概述 2、方法 3、训练过程 4、实验 二、ImVid 1、概述 2、Imvid数据集 3、STG方法 一、NeRAF 1、概述 NeRF类方法仅支持视觉合成功能&#xff0c;缺乏声学建模能力。对于以往的声学建模&#xff08;如NAR/INRAS&#xff09;会忽略三维场景几何对声…

重复文件删除查找工具 Duplicate Files Search Link v10.7.0

软件介绍 Duplicate Same Files Searcher 是一款面向 Windows 平台的专业重复文件检索与清理工具&#xff0c;兼具符号链接替换与 NTFS 高级特性支持&#xff0c;可在无损数据的前提下大幅缩减磁盘冗余。 软件使用 软件打开后是英文版&#xff0c;手动切换中文&#xff08;按…

简易shell

目录 一、整体功能概述 函数准备 1.env命令 2.getenv()函数 3.snprintf 4.strtok()函数 三、全局变量 四、核心功能函数解析 1. 信息获取函数 2. 命令行交互 3. 命令解析 4. 普通命令执行 5. 内置命令处理&#xff08;核心功能&#xff09; 五、主函数流程 六、总…

网关资源权限预加载:从冷启动阻塞到优雅上线的完整闭环

网关资源权限预加载:从冷启动阻塞到优雅上线的完整闭环 基于 Spring Cloud Gateway + Spring Cloud Alibaba Nacos ——一篇可落地的技术方案与源码级实现 1. 场景与痛点 在微服务网关层做 统一资源权限校验 时,必须满足: 启动阻塞:所有权限规则加载完成前,不监听端口,拒…

open webui源码分析8—管道

我们可以把Open WebUI想象成一个管道系统&#xff0c;数据通过管道和阀门流动。管道作为open webui的插件&#xff0c;可以为数据构建新的通路&#xff0c;可以自定义逻辑和处理数据&#xff1b;阀门是管道的可配置部件&#xff0c;控制数据流过管道时的行为。管道可以理解成用…

深入理解 C 语言 hsearch 哈希表:限制、技巧与替代方案

概述 C 语言标准库中的 hsearch 系列函数提供了一套简单易用的哈希表实现,包含在 <search.h> 头文件中。这组函数虽然接口简洁,但在实际使用中存在一些重要的限制和注意事项。本文将深入探讨 hsearch 的功能特点、设计局限,并提供实用的解决方案和替代建议。 hsearc…

Web网络开发 -- HTML和CSS基础

HTML 超文本编辑语言 HTML 介绍 HTML的英文全称是 Hyper Text Markup Language&#xff0c;即超文本标记语言。HTML是由WEB的发明者 Tim Berners-Lee &#xff08;蒂姆伯纳斯李&#xff09;和同事 Daniel W. Connolly于1990年创立的一种标记语言&#xff0c; 它是标准通用化标…

Python爬虫实战:研究开源的高性能代理池,构建电商数据采集和分析系统

1. 绪论 1.1 研究背景与意义 随着互联网技术的飞速发展,网络数据已成为信息时代的核心资源之一。从商业角度看,企业通过分析竞争对手的产品信息、用户评价等数据,可制定更精准的市场营销策略;从学术研究角度,研究者通过爬取社交媒体数据、学术文献等,可开展社会网络分析…

项目设计文档——爬虫项目(爬取天气预报)

一、项目背景以及项目意义 项目背景&#xff1a; 爬虫技术的核心目的是自动化地从互联网上采集&#xff0c;提取和存储数据。网络爬虫是一种自动化程序&#xff0c;用于从互联网上抓取数据并进行处理。C语言因其高效性和接近硬件的特性&#xff0c;常被用于开发高性能的网络爬…

Python 操作 PPT 文件:从新手到高手的实战指南

在日常工作和学习中&#xff0c;PPT 是我们展示信息和进行演示的重要工具。无论是制作报告、演讲还是教学课件&#xff0c;PPT 都扮演着不可或缺的角色。然而&#xff0c;当面对大量重复性的 PPT 编辑任务时&#xff0c;手动操作不仅耗时耗力&#xff0c;还容易出错。幸运的是&…

系统设计中的幂等性

1. 基本概念 幂等性&#xff08;Idempotence&#xff09;是系统设计中经常提到的概念。如果某个操作执行一次或多次都能产生相同的结果&#xff0c;那么它就是幂等的。2. 代码示例 下面这段代码是幂等的。无论你调用多少次&#xff0c;show_my_button 的最终状态都是False。 de…

Pandas vs Polars Excel 数据加载对比报告

📊 Pandas vs Polars Excel 数据加载对比报告 1. 数据基本情况 数据文件:data.xlsx 数据规模:23,670 行 3 列 字段: case_time:日期/时间 case_name:公司名称(字符串) board:所属板块(字符串) 2. 加载方式与代码 Pandas import pandas as pdfrom tools import…

Kafka 为什么具有高吞吐量的特性?

Kafka 高吞吐量原因&#xff1a;面试题总结 在面试中&#xff0c;Kafka 的高吞吐量设计是高频考点&#xff0c;核心需围绕“架构设计”“存储优化”“网络效率”“资源利用”四个维度展开&#xff0c;以下是结构化总结&#xff1a; 一、核心架构&#xff1a;并行化与分层设计分…