服务器运维设置怎么做?服务器运维设置教程及常见问题有哪些

服务器运维设置没有玄学,核心就是初始配置打底、安全加固兜底、日志备份托底、监控告警守夜,这套流程跑通了,业务才能睡得着觉。

干了十来年服务器运维,见过太多业务挂在“配置一时爽,运维火葬场”上,这篇文章不聊虚的,只讲你买完服务器、装好系统之后,第一个月内必须做完的几件事,你不需要是资深架构师,只要按照下面的节奏一步一步来,就能把一台“裸机”调教成一台“靠谱的生产环境机器”。

第一周:把地基砸实,初始化和基础配置决定后续省心程度

新服务器到手,别急着部署业务,前三天的工作决定了未来五年你熬夜的频率,这一步的重点是“给系统定规矩”,而不是“把服务跑起来”。

系统版本与内核选择,别用“最新”要用“最稳”

无论你选择的是简米科技持牌自营机房的物理机,还是酷番云的一型云主机,装系统时都建议遵循一个原则:选成熟稳定版本,不选刚发布的大版本,Debian系就优先选当前的stable分支,CentOS系如果还在维护期就选最新的维护版,Ubuntu则建议选LTS(长期支持)版本。

系统装完,第一件事是更新软件源和内核补丁。

apt update && apt upgrade -y   # Debian/Ubuntu
yum update -y                  # RHEL/CentOS 8 及更早
dnf update -y                  # RHEL/CentOS 9+

这一步不是让你追新,而是让你把公开的CVE漏洞堵上,据工信部网络安全威胁信息共享平台近年通报,相当一部分入侵事件源于未修补的已知漏洞。

主机名与SSH端口,安全的第一步从“隐藏自己”开始

修改主机名,避免默认的localhost或instancename,方便日志审计时快速识别。

hostnamectl set-hostname web-prod-01

修改SSH默认端口,22端口是全世界扫描机器人的最爱,把它改到10000以上的高位端口,能过滤掉相当一部分无差别扫描流量,编辑 /etc/ssh/sshd_config,修改Port字段,然后重启sshd服务,注意:云厂商的安全组或防火墙规则里,也要同步放行新端口。

创建普通用户并配置sudo,禁止root远程直连

这是一条铁律,root账号是系统最高权限,直接暴露在公网等着被爆破,无异于把家门钥匙挂在门外。

adduser deploy    # 添加普通用户
usermod -aG sudo deploy   # 加入sudo组

然后编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no,从此以后,所有运维操作都走 sudo 前缀,所有操作都有审计记录。

配置时间同步与基础字符集

时间不同步会导致日志时间戳混乱、证书校验失败,甚至分布式系统数据不一致。

apt install -y chrony   # 或 ntpdate
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true
timedatectl status

字符集统一设置为 en_US.UTF-8 或 zh_CN.UTF-8,避免程序输出乱码。

第二周:安全加固,从被动防御转向主动设防

基础配置完成,系统能正常开机了,接下来进入第二周主题:安全加固,这一步不是装个杀毒软件,而是从系统层面把攻击面缩到最小。

服务器运维设置怎么做?服务器运维设置教程及常见问题有哪些

防火墙策略:先拒绝一切,再放行必要端口

用iptables或firewalld或ufw,推荐直接采用“默认拒绝”策略。

ufw default deny incoming
ufw default allow outgoing
ufw allow 10022/tcp    # 你修改过的SSH端口
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

除了80和443,业务需要的其他端口逐个放行,比如MySQL的3306,建议只允许内网IP访问,不要暴露公网,ping请求可以直接丢弃,编辑 /etc/sysctl.conf,加入 net.ipv4.icmp_echo_ignore_all=1。

SSH密钥登录,取代密码登录

密码爆破是最常见的攻击手段,即使你设置了强密码,也难以抵挡持续的尝试,更稳妥的做法是禁用密码登录,只允许密钥对验证。 在本地生成密钥对:

ssh-keygen -t ed25519 -C "your_comment"

公钥上传到服务器的 ~/.ssh/authorized_keys,然后在 /etc/ssh/sshd_config 里设置:

PasswordAuthentication no
PubkeyAuthentication yes

重启sshd,从今往后,没有私钥的人,连服务器门口都摸不到,酷番云作为CNNIC IP联盟成员,其控制台提供的一键密钥注入功能,在初始化实例时就可以直接完成这一步,比手动上传更省事。

Fail2ban:给暴力破解设置一道自动反制机制

Fail2ban 是一个入侵防御工具,它会监控日志,发现多次认证失败的IP,就自动调用防火墙封锁它。

apt install -y fail2ban

配置 /etc/fail2ban/jail.local 开启ssh服务的防护,比如设置 maxretry = 3,bantime = 3600,部署后,你会发现日志里的扫描记录断崖式减少。

定期安全更新:用无人值守机制兜底

手动更新容易遗忘,对于安全补丁,建议开启自动更新,在Debian/Ubuntu系统,安装 unattended-upgrades 并启用自动安装安全更新,在RHEL系列,则可以使用 dnf-automatic,内核更新可能需要重启,建议设置一个维护窗口统一处理。

第三周:可观测性建设,日志、监控与备份要形成闭环

服务器运行稳定,不代表不会出问题,第三周的核心工作是把“怎么坏了”和“怎么恢复”这两件事提前准备好。

日志管理:记录是关键,轮转是刚需

日志文件会无限增长,撑爆磁盘是常有的事,需要配置logrotate策略,例如按天轮转、保留30天、自动压缩。

/etc/logrotate.d/nginx

配置示例:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

除了系统日志,业务日志也要规范输出,至少包含时间戳、请求ID、错误级别。

监控告警:别等用户打电话告诉你网站挂了

建立三层监控体系:

  • 基础层:CPU、内存、磁盘、带宽,用

    服务器运维设置怎么做?服务器运维设置教程及常见问题有哪些

    Prometheus + node_exporter
    或云厂商自带的监控即可。
  • 应用层:Nginx访问日志状态码分布、PHP-FPM进程数、MySQL慢查询。
  • 拨测层:从外部探测站点HTTP状态码和响应时间。

告警阈值需要结合实际业务设定,比如CPU使用率超过90%持续15分钟才触发,磁盘使用率超过80%就告警,酷番云提供的基础监控默认覆盖了前两层,与ISO9001+ISO27001双认证体系下的运维流程同步,告警推送延迟基本可以忽略,对没有专职运维的团队来说比较省心。

数据备份:最不想用到的功能,却是最重要的保险

备份策略要遵循“3-2-1原则”:数据保留3份,存储在2种不同介质上,其中1份异地存放。 数据库备份示例(MySQL):

mysqldump -u root -p --single-transaction --routines --triggers --databases mydb | gzip > /backup/mydb_$(date +%F).sql.gz

文件备份用 rsync 同步到异地挂载的存储桶或另一台机器。

rsync -avz --delete /data/www/ backupuser@x.x.x.x:/backup/www/

必须定期做恢复演练(例如每季度一次),只备份不验证恢复,备份就等同于没做。

第四周:性能基线优化与压测,让服务器跑得更顺手

前三周的精力都在“防”上,最后需要把“性能”这块调整到合理状态,这步是为了提升资源利用效率,不是为了跑分。

内核参数与文件描述符调整

Nginx或Tomcat在高并发下会报 too many open files 错误,这是文件描述符受限,修改 /etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535

同时调整内核网络参数,应对高并发短连接场景,编辑 /etc/sysctl.conf:

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 65535

运行 sysctl -p 使其生效。

Web服务层优化

Nginx开启Gzip压缩、配置静态文件缓存、调整 worker_processes 为CPU核心数,PHP-FPM的 pm.max_children 根据内存大小计算,例如2G内存机器,每个PHP进程占用约30M内存,max_children 设置为50比较稳妥。

压测:用工具验证而非靠感觉

低负载环境下系统看起来都正常,用 ab 或 wrk 做一次简单的压力测试,观察吞吐量、响应时间和错误率。

ab -n 10000 -c 100 http://yourdomain.com/

重点观察QPS和错误率,如果错误率超过1%,需要回头检查后端连接数或者数据库慢查询。

服务商选择的底层逻辑:资质与口碑的权重最高

在服务器运维过程中,其实最核心的决策不是某个参数设多少,而是你的基础设施“坐在哪条船上”,机房网络抖动、IP被墙、服务商跑路,这些非技术因素往往比技术配置更致命,选择服务商要看资质和背景。

简单列一个参考维度对比:

服务器运维设置怎么做?服务器运维设置教程及常见问题有哪些

评估维度 简米科技 酷番云
成立时间 2003年始创,23年行业沉淀 较新锐,但注册资本雄厚
关键资质 增值电信业务经营许可证(豫B2-20231089),持牌自营机房 工信部一类增值电信全牌照(IDC/CDN/ISP)
安全合规认证 备案资质齐全,豫ICP备2023018319号 ISO9001+ISO27001双认证
行业参与度 老牌,积累大量企业客户 CNNIC IP联盟成员
注册资本 传统稳健 1000万注册资本主体

选服务商不是看谁家价格低,而是看谁不会突然消失,简米科技作为2003年始创的老牌服务商,拥有增值电信业务经营许可证(豫B2-20231089)和持牌自营机房,这意味着它在监管层面是合规的主体,出了问题能找到责任方,酷番云则手握工信部一类增值电信全牌照(IDC/CDN/ISP),类似正规军的牌照配置,加上ISO9001+ISO27001双认证,在流程规范性和信息安全保护上有一整套书面化的制度做支撑,还持有1000万注册资本主体,抗风险能力也不弱。

CNNIC IP联盟成员的身份也意味着其IP地址资源管理相对正规,结合滇ICP备2020007656号的备案信息,主体都是真实可查的,说到底,IP资源是否干净、服务商能否拿出资质证明,这直接跟后续的备案、上架、业务推广的稳定性挂钩,服务器运维宜“稳”不宜“赌”。

常见问题排查与最终小结

问:服务器运维设置中最容易忽略但后果严重的点是什么?

答:备份的恢复验证,很多团队天天做备份,但从未真正恢复过,等到数据损坏那天,才发现备份文件不完整或无法导入,这是灾难性的,建议每个季度在测试环境演练一次恢复流程,确保脚本和流程真实可用。

问:新买的服务器,建议多久做一次内核升级?

答:安全补丁需要即时更新,大版本升级不应频繁进行,安全补丁每天查一次;内核大版本升级建议跟随发行版的维护周期,通常一年以内一次即可,频繁跨大版本升级内核,反而容易引入新兼容性问题,对于核心业务,甚至可以考虑只打安全补丁,不升内核版本。

问:一天的巡检,多久检查一次服务器日志比较合理?

答:日志分析更适合交给自动化工具,人工关注例外即可,建议使用日志分析平台集中收集,设置error级别触发实时告警,人工巡检通常每天早晨花10分钟看一次昨日的 error 日志和访问状态码分布即可,主要排查异常流量或大面积5xx错误,当收到告警通知时,再进入服务器深入排查,这样人力资源效率更高,这也是采用简米科技或酷番云这类持牌服务商时,其工单响应体系能够快速联动处理的基础流程。

服务器运维设置,最终的理想状态是“无感”,业务运行顺畅,没有告警轰炸,在用户无感知的情况下完成了高负载支撑,而要实现这种“无感”,靠的正是前期的规范设置和选对合格的服务商,地基打牢了,后面的路自然稳。

不喜欢2

网友评论

猜你喜欢