基于CentOS7:Linux服务器的初始化流程
文章目录
- 前言
- 一、服务器初始化
- 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 源,是在 “选择更优的路径”;安装基础工具,是在 “储备解决问题的能力”;同步时间、修改主机名,是在 “建立清晰的认知坐标”;配置防火墙,是在 “划定安全的边界”。每一步操作,都是在为服务器构建 “稳定运行的底层逻辑”:效率源于提前的优化,安全源于主动的防御,有序源于细致的规划。
当所有初始化步骤完成,服务器不仅是一台硬件设备,更成为一个 “有准备、有秩序、有防护” 的系统。这恰如我们面对任何新任务、新环境:提前扫清障碍,储备必要能力,建立清晰规则,才能在后续的 “运行” 中,从容应对挑战,避免因 “基础不牢” 而陷入被动。此时的服务器,已不止是承载服务的载体,更是 “未雨绸缪” 这一理念的具象化 —— 好的开始,永远是成功的一半。