服務器初始化流程***

前言

????????在云計算與自動化運維日益成熟的今天,快速、批量地部署服務器已成為常態。然而,一臺新構建的云服務器或新安裝的物理服務器,僅僅是一個可運行的操作系統內核,遠未達到投入生產環境或開發測試的標準。一個缺乏標準化配置的“裸”服務器,往往伴隨著軟件源陳舊、工具鏈缺失、時間不同步、安全策略空白等一系列問題,如同地基不穩的建筑,為后續的應用部署和系統穩定性埋下隱患。

????????服務器初始化流程正是為此而生,它是系統生命周期中至關重要的一環。本流程所聚焦的配置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
英文地址,請注明出處:http://en.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…