新服务器上线:标准化初始化流程

每次登录一台崭新的云服务器或物理服务器,面对一个原始的操作系统,你是否曾感到一丝茫然?从何做起?先改密码?还是配网络?

服务器初始化是运维工作的基石。一个标准化的初始化流程,能确保环境一致性、提升安全性,并为后续所有应用部署铺平道路。

无论你面对的是 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 密钥登录,禁用密码登录: 从根本上提升访问安全性。

    1. 本地生成密钥对:ssh-keygen -t rsa -b 4096

    2. 上传公钥到服务器:ssh-copy-id sysadmin@your_server_ip

    3. 编辑 /etc/ssh/sshd_config

      复制代码
      复制代码
      复制代码
      PubkeyAuthentication yes
      PasswordAuthentication no
      PermitRootLogin no
    4. 重启 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。

标准化带来的收益是巨大的: 故障排查更快(因为环境一致),新服务上线更稳(没有遗漏步骤),安全基线更高(强制实施了关键加固)。

下次当你面对一台全新的服务器时,不必再从头思考。执行这份清单,就能获得一台安全、健壮、就绪的"战斗机器"。

相关推荐
测试员周周6 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
小辰记事本8 小时前
从零读懂RoCEv2数据包构造:从WQE到线缆上的完整旅程
服务器·网络·网络协议·rdma
在角落发呆10 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
裴东青12 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
江公望12 小时前
Ubuntu htop命令,10分钟讲清楚
linux·服务器
哎呦,帅小伙哦12 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面
linux·运维·服务器
sxgzzn12 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
张小姐的猫12 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
CodeMartain13 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
xxx1x1x13 小时前
极客向:DLL/运行库故障的底层逻辑与自动化修复方案
运维·自动化·dll文件·dll·dll修复·dll缺失·dll一键修复