文章目錄
- 前言
- 一、服務器初始化
- 1.1 配置國內 Yum 源(加速軟件安裝)
- 1.1.1 使用阿里云源
- 1.1.2 使用清華源(可選)
- 1.2 更新系統與安裝必備工具
- 1.3 網絡連接驗證
- 1.4 配置主機名
- 1.5 同步時間
- 1.6 配置iptables防火墻
- 1.6.1 手動配置iptables防火墻
- 1.6.2 使用腳本自動化配置防火墻
- 1.7 永久關閉SELinux
- 總結
前言
你有沒有過這樣的體驗:新買的筆記本電腦到手,第一件事是換個順手的瀏覽器、裝齊辦公軟件、調準系統時間,不然連傳個文件、查個資料都覺得 “卡手”?新服務器其實和新電腦一樣,剛到手時就像個 “空白畫布”—— 默認的軟件源在國外,下一個小工具要等半天,堪比用撥號網加載視頻;想用 vim 改個配置文件,系統提示 “沒裝”,想用 wget 下點東西,又得先折騰安裝;更別說主機名還是一串沒意義的字符,時間也跟本地差著好幾個小時,后續查日志時對著 “穿越” 的時間戳一頭霧水,遠程管理時連 “這臺是哪臺” 都分不清。
服務器初始化,本質上就是給這臺 “專業設備” 做 “個性化開荒”:把國外的軟件源換成國內的 “高速通道”,讓下載從 “龜速” 變 “秒速”;裝齊 vim、net-tools 這些 “常用工具包”,就像給電腦裝了 Office、壓縮軟件,不用每次要用時臨時找替代方案;調準時間、改個好記的主機名,是給服務器 “貼好標簽、對好時鐘”,后續管理時一眼認得出、查日志時不糊涂;最后配好防火墻,相當于給服務器裝了 “智能門鎖”,只讓有用的流量進來,擋住亂七八糟的風險。
這些看似瑣碎的步驟,其實是給后續所有操作 “鋪好路”。要是跳過這一步,等后面搭網站時發現下載慢到崩潰,或者跑服務時因為時間不準導致日志混亂,再回頭補配置,只會更麻煩。本文就以 CentOS 7 為例,把服務器初始化的每一步拆成 “家常操作”,幫你輕松把新服務器從 “半成品” 變成 “好用又省心” 的專業設備。
一、服務器初始化
1.1 配置國內 Yum 源(加速軟件安裝)
將默認的國外源替換為國內源(如阿里云、清華源),可以顯著提升軟件包的下載速度。
1.1.1 使用阿里云源
# 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 源
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
在有自己的源的情況下,可以使用以下方法進行阿里云的 CentOS 7 鏡像配置
1.1.2 使用清華源(可選)
將上述第2步命令替換為:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo
1.2 更新系統與安裝必備工具
系統更新可獲取最新的安全補丁,安裝常用工具便于后續維護和開發。
# 1. 更新系統(不建議在實際環境中使用,安裝常用的即可)
sudo yum update -y# 2. 安裝常用工具
yum install -y vim-enhanced wget curl telnet net-tools bash-completio lsof sysstat htop tree git unzip lrzsz
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等終端傳輸文件
1.3 網絡連接驗證
確保服務器能正常訪問外網和解析域名。
# 1. 查看IP地址
ip addr show
# 或
ifconfig# 2. 測試外網是否連通,如果出現問題檢查文件/etc/sysconfig/network-script/ifcfg-ens33是否存在錯誤
ping -c 4 www.baidu.com
1.4 配置主機名
設置主機名便于識別和管理服務器。
# 1. 查看當前主機名
hostname# 2. 設置新主機名
sudo hostnamectl set-hostname [任意名稱]# 3. 修改 hosts 文件
sudo vim /etc/hosts
# 如添加:192.168.10.123 tb-tomcat1# 4. 立即生效
bash
1.5 同步時間
保證服務器時間準確,對日志和證書等至關重要。
# 1. 安裝 chrony
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
1.6 配置iptables防火墻
1.6.1 手動配置iptables防火墻
在 CentOS 7 中配置 iptables
是一項經典而實用的技能。盡管系統默認采用 firewalld
,但許多管理員更青睞 iptables
的簡潔性和直接控制方式。
使用以下命令可以手動一步步配置iptables防火墻的初始化:
# 1. 關閉 firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld# 2. 安裝 iptables-services
sudo yum install -y iptables-services# 3. 設置默認策略(注意先放行SSH)
sudo iptables -P INPUT DROP # 默認拒絕所有進來的流量
sudo iptables -P FORWARD DROP # 默認拒絕所有轉發的流量
sudo iptables -P OUTPUT ACCEPT # 默認允許所有出去的流量
sudo iptables -A INPUT -i lo -j ACCEPT #允許所有本地回環(lo)接口的通信,這是系統內部通信所必需的
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允許已建立的和相關聯的連接通過。這條規則至關重要!它允許對外請求的返回數據包進入,否則無法正常上網和使用大多數服務。# 4. 放行常用端口
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
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT #https# 5. 保存并重啟
sudo service iptables save
sudo systemctl start iptables
sudo systemctl enable iptables
1.6.2 使用腳本自動化配置防火墻
如果你厭倦了重復化的配置,也可以編譯一個腳本進行自動化的配置
將以下內容保存為腳本文件(如 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 iptablesecho "Configuration complete! Current rules:"
iptables -vnL
給腳本執行權限并運行:
chmod 744 setup_iptables.sh
sudo ./setup_iptables.sh
1.7 永久關閉SELinux
最后一步,永久關閉SELinux,在存在企業級防火墻的今天,SELinux的功能已經成為了阻礙,時常會因為SELinux,出現不明所以的錯誤,所以永久關閉它是很必要的。
vim /etc/sysconfig/selinux
總結
服務器的初始化,從來不是簡單的 “敲命令、改配置”,而是一場關于 “秩序與安全” 的提前布局。就像蓋房子要先打地基,默認的國外 Yum 源是 “繞遠的路”,未安裝的工具是 “缺失的建材”,混亂的主機名與時間是 “錯位的坐標”,未配置的防火墻是 “敞開的大門”—— 這些看似微小的 “漏洞”,都會在后續使用中逐漸放大,變成效率的瓶頸、安全的隱患。
我們替換國內 Yum 源,是在 “選擇更優的路徑”;安裝基礎工具,是在 “儲備解決問題的能力”;同步時間、修改主機名,是在 “建立清晰的認知坐標”;配置防火墻,是在 “劃定安全的邊界”。每一步操作,都是在為服務器構建 “穩定運行的底層邏輯”:效率源于提前的優化,安全源于主動的防御,有序源于細致的規劃。
當所有初始化步驟完成,服務器不僅是一臺硬件設備,更成為一個 “有準備、有秩序、有防護” 的系統。這恰如我們面對任何新任務、新環境:提前掃清障礙,儲備必要能力,建立清晰規則,才能在后續的 “運行” 中,從容應對挑戰,避免因 “基礎不牢” 而陷入被動。此時的服務器,已不止是承載服務的載體,更是 “未雨綢繆” 這一理念的具象化 —— 好的開始,永遠是成功的一半。