服务器初始化流程***

前言

        在云计算与自动化运维日益成熟的今天,快速、批量地部署服务器已成为常态。然而,一台新构建的云服务器或新安装的物理服务器,仅仅是一个可运行的操作系统内核,远未达到投入生产环境或开发测试的标准。一个缺乏标准化配置的“裸”服务器,往往伴随着软件源陈旧、工具链缺失、时间不同步、安全策略空白等一系列问题,如同地基不稳的建筑,为后续的应用部署和系统稳定性埋下隐患。

        服务器初始化流程正是为此而生,它是系统生命周期中至关重要的一环。本流程所聚焦的配置YUM源、安装必备工具、网络验证、设置主机名、同步系统时间、配置防火墙等核心步骤,旨在通过一系列标准化操作,将一台原始服务器快速塑造为一台安全、稳定、高效、可用的标准化资产。这不仅为后续自动化配置和应用部署铺平了道路,更是构建健壮IT基础设施的坚实第一步。执行本流程,意味着我们正系统性地为服务器的长期稳定运行打下坚实的基础。

1 配置国内 Yum 源(加速软件安装)

将默认的国外源替换为国内源(如阿里云、清华源),速度会快很多。

# 1. 备份原有的源文件,以防万一
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
​
# 3. 下载阿里云的 EPEL 源 (Extra Packages for Enterprise Linux,提供大量额外软件)
sudo yum install -y epel-release
sudo 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


2 更新系统与安装必备工具

系统更新可以获取最新的安全补丁和软件包。安装常用工具便于后续维护和开发。

# 1. 更新整个系统(内核更新需要重启生效)
sudo yum update -y
​
# 2. 安装一批最常用的工具
sudo yum install -y \vim-enhanced \            # 加强版的vi编辑器wget \                    # 命令行下载工具curl \                    # 网络数据传输工具telnet \                  # 网络诊断工具net-tools \               # 包含ifconfig等网络工具bash-completion \         # 命令自动补全增强lsof \                    # 列出打开的文件sysstat \                 # 系统性能监控工具(包含iostat, sar等)htop \                    # 交互式进程查看器(比top更好用)tree \                    # 以树状图列出目录内容git \                     # 版本控制工具unzip \                   # 解压zip文件lrzsz                     # 提供sz(下载)、rz(上传)命令,方便Xshell等终端传输文件
​
# 如果需要开发环境,还可以安装
# sudo yum groupinstall -y "Development Tools"
​
批量下载以上工具:yum install -y vim-enhanced wget curl telnet net-tools bash-completion lsof sysstat htop tree git unzip lrzsz       


3 网络连接验证

确保机器能正常访问网络,这是后续所有操作的基础。

# 1. 查看当前IP地址,确认网络接口已启动
ip addr show
或 ifconfig
​
# 2. 测试是否能解析域名(检查DNS)
ping -c 4 www.baidu.com
​
# 3. 测试是否能访问外网
ping -c 4 114.114.114.114
​
# 如果无法上网,需要检查网络配置
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 (网卡名可能不同,如ens33)

4 配置主机名

方便识别和管理服务器,而不是只靠IP地址。

# 1. 查看当前主机名
hostname
​
# 2. 设置新的主机名(例如:centos7-master)
sudo hostnamectl set-hostname centos7-master
​
# 3. 修改 hosts 文件,将本机主机名解析到本地,避免某些软件报错
# 在文件末尾添加一行:127.0.0.1 <你的主机名>
sudo vim /etc/hosts
# 例如添加:127.0.0.1 centos7-master
​
# 4. 重新登录Shell后生效,或者执行以下命令立即生效#    bash


5 同步时间

保证服务器时间准确,对于日志分析、证书验证等至关重要。

# 1. 安装 chrony 时间同步服务(CentOS 7 首选)
sudo yum install -y chrony
​
# 2. 启动 chronyd 服务并设置开机自启
sudo systemctl start chronyd
sudo systemctl enable chronyd
​
# 3. 强制立即与时间服务器同步        sudo chronyc -a makestep
​
# 4. 查看时间同步状态               sudo chronyc sources -v
# 或查看当前系统时间                date

根据deepseek解释:

开始排错解决问题:


6 配置防火墙 (两种方式)

6.1 iptables

        好的,在 CentOS 7 上配置 iptables 是一个经典且强大的技能。虽然系统默认使用 firewalld,但很多管理员更喜欢直接使用 iptables 的简洁和直接控制。

以下是关闭 firewalld 并配置 iptables 的详细步骤。

整体思路

  1. 停止并禁用 firewalld:为 iptables 让路。

  2. 安装 iptables-services:提供 iptables 的保存和服务管理功能。

  3. 设置默认策略:定义“默认拒绝”的安全基础。

  4. 编写具体的放行规则:按需开放端口。

  5. 保存规则并设置开机自启:确保配置永久生效。


详细步骤

第 1 步:停止并禁用 Firewalld

sudo systemctl stop firewalld
sudo systemctl disable firewalld

第 2 步:安装并启动 Iptables Services

# 安装 iptables-services 包,它提供了保存规则和作为服务管理的功能
sudo yum install -y iptables-services
​
# 启动iptables服务并设置开机自启
sudo systemctl start iptables
sudo systemctl enable iptables

第 3 步:设置默认策略(安全基础)

在添加任何允许规则之前,先设置最严格的默认策略:拒绝所有传入连接,允许所有传出连接,允许转发

警告:在执行以下命令前,请确保你已经放行了 SSH 端口(通常是22),否则会立即断开远程连接! 最好在本地控制台操作。

# 1. 设置默认策略(非常重要!先做这一步)
sudo iptables -P INPUT DROP    # 默认拒绝所有进来的流量
sudo iptables -P FORWARD DROP  # 默认拒绝所有转发的流量
sudo iptables -P OUTPUT ACCEPT # 默认允许所有出去的流量
​
# 2. 允许所有本地回环(lo)接口的通信,这是系统内部通信所必需的
sudo iptables -A INPUT -i lo -j ACCEPT
​
# 3. 允许已建立的和相关联的连接通过
# 这条规则至关重要!它允许对外请求的返回数据包进入,否则无法正常上网和使用大多数服务。
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

第 4 步:添加具体的放行规则(按需开放)

现在,在严格的基础上,按需开放端口。

# 1. 允许SSH连接 (端口22) - 这是远程管理的生命线,必须开放!
# 可以使用 --dport 22 或 -m tcp -p tcp --dport 22,后者更精确
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
​
# 2. 允许PING (ICMP协议),便于网络诊断
sudo iptables -A INPUT -p icmp -j ACCEPT
​
# 3. 允许HTTP (80) 和 HTTPS (443)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
​
# 4. 如果需要放行其他端口,例如MySQL (3306)、自定义端口(8080)
# sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

第 5 步:保存规则并重启服务

iptables 的命令规则默认只在内存中生效,重启后会丢失。必须使用以下命令保存到配置文件中。

# 保存当前内存中的规则到 /etc/sysconfig/iptables 文件
sudo service iptables save
# 或者使用
sudo /usr/libexec/iptables/iptables.init save
​
# 重启iptables服务,确保配置加载无误
sudo systemctl restart iptables

第 6 步:验证配置

# 查看当前生效的所有iptables规则,检查配置是否正确
sudo iptables -L -v -n --line-numbers
​
# 检查iptables服务状态
sudo systemctl status iptables

一个完整的配置脚本示例

你可以将以下内容保存为一个脚本(如 setup_iptables.sh),然后执行,但务必在安全的环境下(如本地虚拟机)先测试,或者确保已放行 SSH。

#!/bin/bash
​
# 停止firewalld
echo "Stopping firewalld..."
systemctl stop firewalld
systemctl disable firewalld
​
# 安装iptables-services
echo "Installing iptables-services..."
yum install -y iptables-services
​
# 设置默认策略和基础规则
echo "Setting up iptables rules..."
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
​
# 添加放行规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    # SSH
iptables -A INPUT -p icmp -j ACCEPT              # ICMP (Ping)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # HTTPS
# 在此添加你需要的其他规则...
​
# 保存并启用
echo "Saving rules and enabling service..."
service iptables save
systemctl start iptables
systemctl enable iptables
​
echo "Configuration complete! Current rules:"
iptables -L -v -n

给脚本执行权限并运行:

chmod +x setup_iptables.sh
sudo ./setup_iptables.sh

常用管理命令

命令说明
sudo iptables -nvL查看当前规则(详细模式,不解析IP为主机名)
sudo iptables -nvL --line-numbers查看规则并显示行号(用于删除规则)
sudo iptables -D INPUT <规则行号>删除INPUT链中指定行号的规则
sudo service iptables save保存当前规则(必须做,否则重启失效)
sudo systemctl restart iptables重启iptables服务
sudo systemctl status iptables查看iptables服务状态

通过以上步骤,你就成功地用 iptables 为你的 CentOS 7 服务器构建了一个简单而坚固的防火墙。

注意:这里可以设置默认 等服务部署完之后需要添加服务端口(协议)放行

6.2 firewalld

CentOS 7 默认使用 firewalld 作为防火墙前端管理工具。配置原则是:默认拒绝所有传入连接,只开放必要的端口

# 1. 查看防火墙状态
sudo systemctl status firewalld
# 如果未启动,则启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld# 2. 查看当前开放的端口和服务
sudo firewall-cmd --list-all# 3. 放行常用的服务端口(根据需求选择)# 放行 SSH 端口(默认22,极其重要,确保自己能连上)
sudo firewall-cmd --permanent --add-service=ssh# 放行 HTTP (80) 和 HTTPS (443) 端口,用于Web服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https# 如果需要放行自定义端口,例如 8080
# sudo firewall-cmd --permanent --add-port=8080/tcp# 4. 重新加载防火墙配置使其生效
sudo firewall-cmd --reload# 5. 再次确认规则已生效
sudo firewall-cmd --list-all

重要安全提示:如果修改了 SSH 端口(例如改为 5922),一定要先放行新端口再关闭旧端口,否则可能导致自己无法远程连接!

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

        完成以上所有步骤后,你的 CentOS 7 服务器就已经完成了最基本、最安全的初始化设置,可以投入使用了。建议最后重启一次服务器 (sudo reboot) 以确保所有更改(特别是内核更新和主机名)完全生效。

7 总结

        通过执行以上服务器初始化流程,我们成功地将一台原始服务器进行了标准化改造,为其赋予了投入生产或测试环境所需的基本能力。

本流程的核心成果与价值体现在:

  1. 奠定了软件基础:通过配置国内高速的YUM源,确保了系统能够快速、稳定地获取和更新软件包。随后安装的必备工具集(如vim, net-tools, wget等),则为运维管理和故障排查提供了 immediate 的支持,极大提升了工作效率。

  2. 确保了基础运行环境可靠网络连通性验证保障了服务器具备与外界通信的能力;规范地配置主机名为服务器提供了清晰的身份标识,方便了集群管理和服务发现;强制性的时间同步(NTP) 则是保障分布式应用协同工作、日志时间戳准确的关键,是任何严肃服务的基础依赖。

  3. 构筑了初级安全防线配置防火墙(Firewalld或iptables) 是本流程的安全核心。通过关闭非必要端口,仅开放明确允许的通信,我们显著缩小了系统的受攻击面,为服务器提供了最基本、也是最有效的网络层安全隔离。

        总而言之,这套初始化流程是一套高效、实用的“服务器开箱即用”指南。它虽然不包含更深层次的安全加固(如SSH密钥登录、禁用root、安装入侵检测系统等),但却完美地完成了从“裸金属”到“标准化样板”的关键转变,为任何后续的自动化配置管理和应用部署提供了一个纯净、一致、可靠的起点。将此流程脚本化、自动化,是实现规模化运维的必然要求。

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

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

相关文章

Python实现电商Excel读取进行可视化分析

目录专栏导读项目简介功能特性&#x1f4ca; 数据处理功能&#x1f4c8; 统计分析功能&#x1f3a8; 可视化功能&#x1f4cb; 报告生成项目结构安装和使用环境要求安装步骤使用自己的数据依赖包说明输出文件说明静态图表&#xff08;PNG格式&#xff09;交互式图表&#xff08…

肌肉力量训练

健身一年多瘦了十几斤&#xff0c;没有像上次一样吃轻食哦。每天早晨跑步或者做力量训练&#xff0c;中午和晚上吃完饭遛遛弯&#xff0c;坚持下来就好了。 但力量训练一直没有请教练&#xff0c;自己也没查资料&#xff0c;算是瞎练吧。最近发现了一本好书&#xff0c;讲解如何…

微服务-27.配置管理-什么是配置管理

一.配置管理到目前为止我们已经解决了微服务相关的几个问题&#xff1a;微服务远程调用微服务注册、发现微服务请求路由、负载均衡微服务登录用户信息传递不过&#xff0c;现在依然还有几个问题需要解决&#xff1a;我们发现很多微服务中的配置文件里的配置都是重复的。修改编辑…

【RAGFlow代码详解-13】RAG 管道

管道架构概述 RAG 管道由多个处理阶段组成&#xff0c;这些阶段将文本内容转换为适合智能检索的结构化知识表示&#xff1a;文档到知识图谱工作流程 主要处理工作流程通过 run_graphrag 功能将单个文档块转换为统一的知识图谱&#xff1a;GraphRAG 处理方法 RAGFlow 支持两种不…

深度学习——模型训练

以Pytorch自带的手写数据集为例。我们已经构建了一个输入层&#xff08;28*28&#xff09;&#xff0c;两个隐藏层&#xff08;128和256&#xff09;&#xff0c;一个输出层&#xff08;10&#xff09;的人工神经网络。并且结合非线性激活函数sigmoid定义前向传播的方向。class…

使用Kiro智能开发PYTHON应用程序

文章目录使用Kiro智能开发PYTHON应用程序1. 什么是KIRO&#xff1f;2. 获取KIRO3. 安装KIRO4. 用KIRO开发智能应用程序6. 推荐阅读使用Kiro智能开发PYTHON应用程序 By JacksonML KIRO是AWS亚马逊云科技旗下的独立AI产品&#xff0c;是用来开发生产级应用程序的AI IDE。 本文简…

UNIX网络编程笔记:高级套接字编程12-19

IPv4与IPv6互操作性&#xff1a;技术解析与实践指南 在网络协议演进进程中&#xff0c;IPv4向IPv6的过渡是绕不开的关键阶段。尽管IPv6凭借海量地址、更优扩展性成为发展方向&#xff0c;但IPv4设备与网络的广泛存在&#xff0c;使得二者的互操作性成为保障网络平滑演进、业务持…

同类软件对比(一):Visual Studio(IDE) VS Visual Studio Code

文章目录前言一、Visual Studio&#xff08;IDE&#xff09;是什么&#xff1f;二、Visual Studio Code 是什么&#xff1f;三、两者的相同点四、两者的不同点五、实战选择建议总结前言 Visual Studio 和 Visual Studio Code&#xff0c;它们一个是微软旗下的老牌霸主&#xf…

数据结构初阶:详解单链表(一)

&#x1f525;个人主页&#xff1a;胡萝卜3.0 &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》《数据结构》 《C干货分享》 ⭐️人生格言&#xff1a;不试试怎么知道自己行不行 目录 顺序表问题与思考 正文 一、单链表 1.…

塞尔达传说 旷野之息 PC/手机双端(The Legend of Zelda: Breath of the Wild)免安装中文版

网盘链接&#xff1a; 塞尔达传说 旷野之息 免安装中文版 名称&#xff1a;塞尔达传说 旷野之息 PC/手机双端 免安装中文版 描述&#xff1a;忘记你所知道的关于塞尔达传说游戏的一切。在《塞尔达传说&#xff1a;旷野之息》中步入一个充满发现、探索和冒险的世界&#xff0…

【分享开题答辩过程】一辆摩托车带来的通关副本攻略----《摩托车网上销售系统》开题答辩!!

一、开题陈述 各位评委老师好&#xff0c;我是A同学。 本次我设计与实现的是基于ASP.NET的摩托车网上销售系统&#xff0c;该系统以 MySQL 为后台数据库&#xff0c;主要解决当前社会背景下用户线下看车购车困难的问题&#xff0c;同时顺应摩托车网络营销的发展趋势&#xff…

python + unicorn + xgboost + pytorch 搭建机器学习训练平台遇到的问题

1.背景前段时间&#xff0c;使用 python unicorn xgboost pytorch 写了一个机器学习训练平台的后端服务&#xff0c;根据公司开发需要&#xff0c;需具备两种需求&#xff1a;1. 可以本地加载使用&#xff1b;2.支持web服务&#xff0c;2. 使用本地加载使用2.1 问题针对第一…

Odoo 非标项目型生产行业解决方案:专业、完整、开源

概述您眼前的这张应用蓝图&#xff0c;是由 Odoo 官方金牌服务商——开源智造 (OSCG) 凭借多年在非标项目型制造领域的深厚积累&#xff0c;精心设计的 Odoo 解决方案核心流程图。它不仅体现了我们对行业复杂业务场景的深刻理解&#xff0c;更彰显了我们将先进的管理理念与强大…

OpenAI 开源模型 gpt-oss 是在合成数据上训练的吗?一些合理推测

编者按&#xff1a; OpenAI 首次发布的开源大模型 gpt-oss 系列为何在基准测试中表现亮眼&#xff0c;却在实际应用后发现不如预期&#xff1f; 我们今天为大家带来的这篇文章&#xff0c;作者推测 OpenAI 的新开源模型本质上就是微软 Phi 模型的翻版&#xff0c;采用了相同的合…

Linux / 宝塔面板下 PHP OPcache 完整实践指南

Linux / 宝塔面板下 PHP OPcache 完整实践指南 OPcache 是 PHP 官方提供的字节码缓存扩展&#xff0c;通过缓存 PHP 脚本的编译结果&#xff0c;提高 PHP 执行效率。本文讲解从 检测 → 开启 → 使用 → 清理 → 排查问题 的全流程&#xff0c;同时针对宝塔面板界面不实用或无法…

Linux(从入门到精通)

Linux概述 Linux内核最初只是由芬兰人林纳斯托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。 Linux特点 首先Linux作为自由软件有两个特点:一是它免费提供源代码,二是爱好者可以根据自己的需要自由修改、复制和发布源码 Linux的各个发行版本 Linux 的发行版说简单…

链表相关题目---19、删除链表的倒数第N个节点

题目链接&#xff1a;删除链表的倒数第N个节点 这道题 很常规的思路就是 先拷贝两次头结点 然后一个先走N步 然后同时开始走&#xff0c;直到先走N步的节点为空后&#xff0c;就停止&#xff0c;此时另一个没提前走的节点的下一个就是要删除的节点。不过需要注意的是&#xff0…

Vue工具类使用指南:实用函数与全局组件安装

概述在Vue项目开发中&#xff0c;我们经常需要一些通用的工具函数来处理路径转换、链接判断、数据格式化等任务。本文将介绍一个实用的Vue工具类&#xff0c;包含多种常用功能&#xff0c;并演示如何在项目中使用它们。工具函数详解1. 路径转驼峰命名import { pathToCamel } fr…

​Visual Studio + UE5 进行游戏开发的常见故障问题解决

从零开始&#xff0c;学习 虚幻引擎5&#xff08;UE5&#xff09;&#xff0c;开始游戏开发之旅&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 有些项目在 Visual Studio 的 Unreal Engine 集成配置界面中&#xff0c;涉及 ​Unreal Engine 与 V…

MiniCPM-V4.0开源并上线魔乐社区,多模态能力进化,手机可用,还有最全CookBook!

今天&#xff0c;面壁小钢炮新一代多模态模型 MiniCPM-V 4.0 正式开源。依靠 4B 参数&#xff0c;在 OpenCompass、OCRBench、MathVista 等多个榜单上取得了同级 SOTA 成绩&#xff0c;且 实现了在手机上稳定、丝滑运行。此外&#xff0c;面壁团队也正式开源了 推理部署工具 Mi…