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

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

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

无论你面对的是 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。

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

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

相关推荐
2501_918126912 小时前
学习所有python写服务器的语句
服务器·人工智能·python·学习·个人开发
wobi_baoyan2 小时前
【已解决】使用Maven打包发生或者启动Spring Boot项目发生 错误: 不支持发行版本 17
服务器·前端·javascript
任我坤2 小时前
搭建Jenkins服务-2025更新
运维·servlet·jenkins
朱一头zcy2 小时前
Linux系列02:网络配置、修改hosts映射文件、关闭防火墙
linux·运维·网络
学不完的3 小时前
Docker 的安全优化
运维·安全·docker·容器·eureka
老星*3 小时前
1Panel:现代化开源Linux服务器运维管理面板
运维·服务器·开源
七七powerful3 小时前
运维养龙虾--使用腾讯workbuddy部署ssh-mcp-server允许通过 MCP 协议远程执行 SSH 命令
运维·ssh·ssh-mcp
twc8293 小时前
打造专属 MCP Server 测试自动化的私有化解决方案
运维·软件测试·人工智能·自动化·mcp server
顶点多余3 小时前
Linux中进程间通信 ---管道篇
linux·运维·服务器