每次登录一台崭新的云服务器或物理服务器,面对一个原始的操作系统,你是否曾感到一丝茫然?从何做起?先改密码?还是配网络?
服务器初始化是运维工作的基石。一个标准化的初始化流程,能确保环境一致性、提升安全性,并为后续所有应用部署铺平道路。
无论你面对的是 CentOS、Rocky Linux 还是 Ubuntu,以下这份清单都能为你提供一个坚实可靠的起点。
核心操作清单
第一阶段:安全加固与基础配置
1. 身份鉴别加固
-
修改 root 密码: 首次登录后,立即更改强密码。
passwd -
创建运维账户: 避免直接使用 root,创建具有 sudo 权限的专用账户。
# 以创建用户 sysadmin 为例 useradd sysadmin passwd sysadmin usermod -aG wheel sysadmin # CentOS/Rocky # 或 usermod -aG sudo sysadmin # Ubuntu -
配置 SSH 密钥登录,禁用密码登录: 从根本上提升访问安全性。
-
本地生成密钥对:
ssh-keygen -t rsa -b 4096 -
上传公钥到服务器:
ssh-copy-id sysadmin@your_server_ip -
编辑
/etc/ssh/sshd_config:PubkeyAuthentication yes PasswordAuthentication no PermitRootLogin no -
重启 SSH 服务:
systemctl restart sshd- 务必在禁用密码前,使用新会话测试密钥登录是否成功。
-
2. 系统更新与基础工具安装
-
更新系统: 获取最新的安全补丁和软件包。
# CentOS/Rocky/Alma sudo yum update -y # 或 sudo dnf update -y # Ubuntu/Debian sudo apt update && sudo apt upgrade -y -
安装"瑞士军刀": 安装必备的运维工具包。
# CentOS/Rocky sudo yum install -y vim wget curl net-tools lsof bash-completion # Ubuntu sudo apt install -y vim wget curl net-tools lsof bash-completion
3. 配置时区、语言与主机名
-
设置时区: 确保日志时间准确。
sudo timedatectl set-timezone Asia/Shanghai # 检查 timedatectl status -
配置 Hostname: 给服务器一个易于识别的名字。
sudo hostnamectl set-hostname your-new-hostname # 同时更新 /etc/hosts,确保 127.0.0.1 指向新主机名
第二阶段:系统优化与内核调优
1. 关闭 SELinux / 配置防火墙
-
SELinux: 对于不熟悉的环境,可先设置为宽容模式以便调试,生产环境建议学习后配置。
sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config -
防火墙: 开放必要端口,遵循最小权限原则。
# firewalld (CentOS/Rocky) sudo systemctl start firewalld sudo systemctl enable firewalld sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload # 或 ufw (Ubuntu) sudo ufw allow 22/tcp sudo ufw enable
2. 内核参数优化
-
编辑
/etc/sysctl.conf,根据应用需求调整,例如对于高并发网络服务:net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 fs.file-max = 65535 -
使配置生效:
sudo sysctl -p
3. 资源限制优化
-
编辑
/etc/security/limits.conf,调整进程可打开文件描述符数量等。* soft nofile 65536 * hard nofile 131072
第三阶段:环境准备与监控部署
1. 部署统一监控 Agent
插入广告:各行各业学习千款源码就上:svipm.com
- 这是实现可观测性的第一步。根据你的监控栈(如 Zabbix Agent, Prometheus Node Exporter, Datadog Agent 等),在此步骤完成安装和基础配置。
2. 部署统一的初始化脚本或配置管理客户端
- 如果使用 Ansible、SaltStack 或 Puppet,此时应安装其 Agent,并使其能连接到控制端,以便纳入自动化管理体系。
3. (可选)安装应用运行环境
- 根据服务器角色,安装 Docker、Java、Python、Nginx 等运行时环境。建议使用版本管理工具(如
nvm,pyenv)或容器化部署,以保证环境纯净。
结语
将以上步骤脚本化,便是你团队的"服务器初始化秘籍"。它可以是一个 Shell 脚本,也可以是一份 Ansible Playbook。
标准化带来的收益是巨大的: 故障排查更快(因为环境一致),新服务上线更稳(没有遗漏步骤),安全基线更高(强制实施了关键加固)。
下次当你面对一台全新的服务器时,不必再从头思考。执行这份清单,就能获得一台安全、健壮、就绪的"战斗机器"。