进服务器第一件事不是装软件,而是改密码、关端口、打补丁,这三步踩实了再谈其他。
很多新手拿到一台云服务器或物理机,第一反应就是装宝塔、装Nginx、装数据库,结果没过几天,木马进来了,CPU跑满,数据被盗,行业共识认为,九成以上的服务器入侵事件,根源都是初始配置太随意,下面这份操作顺序,按着走能省掉后续大量麻烦。
首次登录服务器,先做这三件事
刚拿到服务器,系统是干净的原版镜像,但环境并不安全,默认端口号是公开的,初始密码可能是临时生成的,甚至有些人图省事设成弱密码,服务器初次登录要做什么,其实是有标准答案的,顺序比内容更关键。
修改默认口令,关掉用不到的端口
以最常见的Linux系统为例,登录后先执行passwd命令改root密码,如果商家给了临时密码,第一件事就是换掉它,改完root密码后,检查系统里有没有多余的管理账号,执行cat /etc/passwd看看哪些用户能登录,把用不到的用户用usermod -L 用户名锁住。
端口方面,先看当前开了什么服务,用netstat -tlnp查看,默认的22(SSH)、80(HTTP)、443(HTTPS)可以留着,其他不认识的端口一律通过防火墙规则封掉,很多默认安装的系统会跑着一些用不到的服务,比如邮件服务、打印服务,请直接卸载或者禁用。
更新系统补丁,别让服务器带病上岗
新装的系统往往落后于最新版本,登录后立刻更新补丁,在Debian/Ubuntu上执行apt update && apt upgrade -y,在CentOS/RHEL上执行yum update -y,有人觉得刚装的系统不需要更新,这个想法很危险,据统计,相当一部分流行攻击工具就是利用已知漏洞批量扫描的,特征之一就是系统中存在未打补丁的服务。
更新完内核和系统库之后,顺手把系统时间校准了,时间不对,日志乱掉,后面排查问题会非常痛苦。
配置防火墙规则,默认全拒再逐个放行
防火墙策略的核心原则是白名单制,在云服务器上,除了系统自带的防火墙(iptables或firewalld),还有一层云平台的安全组,这两层都要检查。
以简米云为例,云服务器初始化配置安全组时,默认只放行22、80、443这几个常用端口即可,如果你的业务不需要80端口,那就从安全组里删掉,千万别为了省事放行全部端口,哪怕只是一会儿,业内专家指出,安全组配置不当是云上服务器被入侵的头号原因。

服务器初始化环境,按这个顺序来不会乱
安全和基础配置做完了,接下来就是把系统调整成适合跑业务的状态,这个阶段要做的操作很多,但顺序是固定的。
创建普通用户,学会用sudo而不是直接操作root
root权限太大,一旦误操作或者被入侵,代价极高,创建普通用户:
useradd -m deploy passwd deploy usermod -aG sudo deploy
日常操作就用deploy账号登录,需要提权时执行sudo命令,同时禁止root远程登录,修改SSH配置文件/etc/ssh/sshd_config,把PermitRootLogin改成no,然后重启sshd服务。
有人觉得这样绕来绕去太麻烦,等到业务出问题的时候就知道好处了,普通用户误删文件,恢复成本远低于root直接删了整个目录。
配置SSH密钥登录,替代密码验证
密码登录容易被暴力破解,生成密钥对:
ssh-keygen -t ed25519 -C "your_comment"
然后把公钥传到服务器上:
ssh-copy-id deploy@服务器IP
测试密钥能用之后,在sshd_config里把PasswordAuthentication改成no,彻底关闭密码登录,这一步做完,扫描器拿你没办法,除非暴力破解密钥本身。
挂载数据盘,规划目录分区
数据盘和系统盘分开,是服务器管理的基本常识,购买云服务器后,控制台里通常能看到一块未挂载的数据盘,用lsblk查看磁盘状态,找到对应设备名(比如vdb、sdb),
fdisk /dev/vdb # 分区 mkfs.ext4 /dev/vdb1 # 格式化 mkdir /data mount /dev/vdb1 /data
最后写入/etc/fstab实现开机自动挂载,网站代码放/data/www,数据库文件放/data/mysql,日志放/data/logs,这样做的好处是:系统盘出问题重装系统,数据盘还在;快照备份选择目标时,直接按目录区分。
装环境之前,想清楚三个问题
很多人急着装LNMP、宝塔面板,结果装完发现架构选错了,推倒重来,服务器环境搭建教程有很多,但思路比命令重要。
包管理器还是编译安装
用发行版自带的包管理器(apt、yum、dnf)安装软件,省事且容易卸载,但版本可能旧,且不一定有最新特性,编译安装灵活可控、可以针对CPU优化,但升级麻烦,依赖关系容易搞乱。

建议:能用包管理器就用包管理器,除非你的业务有特殊性能要求,或者需要特定版本特性,才考虑手动编译,装之前先搜一下有没有现成的软件源仓库。
上不上容器,看业务阶段
Docker确实方便,但服务器初始化环境搭建如果一上来就跑容器,排查网络问题会多一层复杂度,建议先裸机部署,业务稳定后再考虑容器化改造,别被”一切皆容器”的潮流带偏,很多中小型站点一套LNMP就够跑了,没必要为了微服务而微服务。
备份策略不是装完再想的事
备份要在业务上线之前配好,最简单的方式是用crontab定时打包/data目录到一个独立磁盘或者对象存储,数据库备份单独处理,用mysqldump或者pg_dump做逻辑备份,备份产物要定期验证可恢复,不然备份文件损坏了你不知道,等出事才后悔。
云服务器和物理机,管理上差别不小
这两年上云的比例持续走高,如果你第一次接触云服务器,有些和物理机不一样的逻辑得先搞清楚,很多人问云服务器和物理机管理上有啥区别,核心就两点。
云控制台能做的事,不用登SSH
云服务器的大部分运维操作都在网页控制台完成,重启、重置密码、更换系统盘、调整配置,全在控制台点选,这意味着:
- SSH的密码忘了,不用物理按键恢复,控制台重置就行
- 系统崩溃了,直接控制台强制重启,不用去机房按复位键
- 带宽跑满导致SSH卡死,控制台VNC还能进去抢救
记住这个原则:出了事先看控制台,别一头扎进SSH里乱敲命令。
快照和镜像,是云服务器独有的安全网
给系统盘打个快照,几分钟的事,快照相当于该时间点的完整硬盘副本,系统搞坏了直接回滚,数据库误删了,快照能救回来,做重要操作前打个快照,是云服务器时代的黄金习惯。
镜像则是标准模板,把装好环境的系统做自定义镜像,下次开新服务器直接选这个镜像,秒变一样的环境,做业务扩容的时候,这个功能会极大缩短部署时间。
服务器的日常巡检,守住这几条底线
服务器上线之后不是甩手掌柜,日常巡检的目的,是在小问题变大事故之前拦住它。

CPU、内存、磁盘,盯住这三个数值
每天花两分钟看一眼。top看CPU和内存,df -h看磁盘空间,常见的情况:
- 磁盘满得悄无声息,日志文件狂涨,一天能写几个GB
- 内存总是飘到90%以上,swap狂转,响应变慢
- CPU突然飙高,先看是不是第三方恶意进程在挖矿
建议配置简单的监控脚本,用crontab定时采集数据,或者直接在云平台买监控告警服务,告警阈值按70%报警,给自己留出处理时间。
日志别等出事了再看
/var/log下是系统日志,Nginx的access.log和error.log,MySQL的error.log,各有各的位置,每周翻一次日志,重点看有没有异常登录记录、大量404扫描请求、奇怪的进程行为,安全类的问题越早发现越省事。
常见问题
进服务器都需要干什么,为什么总有人说还要配置安全组?
安全组是云平台提供的第一道网络防线,独立于操作系统防火墙,它设置在虚拟机外面,相当于机房的门口守卫,即使你系统内防火墙没开,安全组也能挡住非法流量,很多新手只改了服务器密码,忽略了云控制台里的安全组规则,结果数据库端口半掩着暴露在公网,被人扫到直接拉库,同时把系统防火墙和安全组配好,才是完整的防护链路。
新人进服务器,操作顺序上最容易犯什么错?
最常见的错误是跳步骤,比如跳过更新补丁直接装软件,结果搭好的环境因为已知漏洞被入侵;或者没做数据盘挂载,直接往系统盘堆数据,系统盘满了导致数据库直接挂掉,另一个常见问题是修改SSH配置时没有保留现有会话,重启服务出问题后把自己锁在门外,任何导致你无法再次登录的操作,都要先开第二个SSH窗口验证没问题再退出。
为什么我按服务器部署教程操作,连本地环境都跑起来了,服务器上就是不生效?
大概率忽略了运行环境和权限差异,本地环境可能是Windows或macOS,命令行解释器不同;服务器上的系统版本、软件版本可能和本地不一样,排查顺序是:先看进程有没有起来(ps aux | grep nginx),再看端口监听状态(netstat -tlnp),最后看防火墙和安全组是否放行了对应端口,域名指向的服务器IP如果没有备案(国内机房要求),80和443端口也会被拦截。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/894868.html

