从零接手一台服务器:新手运维最该先搞懂的四件事
第一次拿到服务器密码的人,多半会经历同一个阶段:登进去之后对着黑屏发呆,不知道该敲什么。装个面板吧,怕被扫;不装吧,又不知道从哪开始。我见过不少新手卡在这一步,最后把机器晾了半个月,钱照付,站没上线。这篇讲的就是从接手到能稳定跑起来,中间那几个真正要动手的环节。
先说清楚一件事:运维不是把所有功能都打开,而是让机器在你不在的时候也别出问题。下面几件事做完,一台 2 核 4G 的入门机器也能撑住一个中小站点的日常访问。
登录方式先换掉,密码登录迟早出事
服务器开通后默认给的是 root 密码,这条路径最大的问题是:全球的扫描器每天都在猜 22 端口的密码。一台新开的机器,几小时内就会在日志里看到大量失败登录记录,这是常态。
我一般建议新机器第一步就做两件事。第一,本地生成一对 SSH 密钥,把公钥传到服务器的 ~/.ssh/authorized_keys,然后改 /etc/ssh/sshd_config,把 PasswordAuthentication 设成 no。第二,如果条件允许,把默认的 22 端口换掉,或者用防火墙只放行你自己的固定 IP。
- 生成密钥:ssh-keygen -t ed25519,一路回车即可
- 上传公钥:ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的IP
- 验证能免密登录后,再关闭密码登录,别提前关,否则容易把自己锁在外面
这一步省不了。用密码登录的机器,被爆破成功的概率只是时间问题。换密钥登录,成本是十分钟,换回来的是长期的安心。
防火墙不是装样子,端口开越少越安全
很多新手装完防火墙就默认全开,等于没装。实际做法是反向来:默认拒绝所有入站,只放行你确实需要的端口。
一个普通网站,通常只需要 22(或者你改过的 SSH 端口)和 80、443。数据库端口 3306、Redis 的 6379 这类,坚决不对外。如果前后端分离,后端 API 端口也只让前端那台机器的 IP 访问。
这里有个取舍:端口开得越少,调试时越麻烦,因为每次加服务都要改规则。但换来的是攻击面大幅收窄。按我的经验,中小项目把入站规则压到三四个端口以内,日常几乎不会遇到因为端口暴露被扫的问题。
如果你跑的是对外的业务,机器本身在海外机房,选一台带宽和线路稳定的物理机比反复调防火墙更重要。像香港站群服务器E3-1230这类配置,E3-1230 配 8G 内存、15M 带宽,适合中小站点起步,机房在香港,国内访问延迟通常在几十毫秒这一档。
看负载别只看 CPU,内存和 IO 才是真瓶颈
新手最容易犯的错,是盯着 CPU 使用率判断机器忙不忙。CPU 到 100% 有时候只是某个进程在死循环,机器本身可能还有余力;反过来 CPU 只有 20%,但内存被吃光开始用 swap,网站照样卡到打不开。
登上去先装个 htop,比 top 直观。重点看三行:load average、内存的 used 和 available、以及 swap 有没有被用上。load average 超过核心数两倍,说明排队已经严重了。
再往下要看的,是磁盘 IO。用 iostat -x 1 看 %util,长期接近 100% 说明磁盘是瓶颈,这时候加 CPU 没用,得换 SSD 或者拆库。
我判断一台机器够不够用,顺序通常是:内存先看够不够放得下工作集,再看磁盘 IO 跟不跟得上,最后才轮到 CPU 核心数。顺序反了,钱容易花错地方。
写一条监控脚本,比装一堆面板管用
面板能看实时数据,但不会主动告诉你机器半夜出过问题。真正管用的是让机器自己汇报。
最简单的做法是写一个每分钟跑一次的 shell 脚本,采集 CPU、内存、磁盘占用,超过阈值就往你邮箱或者聊天工具发一条消息。二十行代码的事。
- 用 crontab -e 加一行:* * * * * /root/check.sh
- 脚本里用 free、df、uptime 取数,配合 awk 判断阈值
- 告警别设太密,内存超过 90% 持续五分钟再报,否则天天被轰炸
这套东西的价值在于,问题发生时你是第一个知道的,而不是等用户来投诉。新手阶段不用追求多完善的监控体系,能收到告警、能登上去看日志,就已经超过大部分人。
最后给个可执行的结论。刚接手服务器,别急着买高配,2 核 4G 加 SSD 足够跑通整个流程。先把密钥登录、防火墙收敛、htop 看负载、监控脚本这四件事做完,再根据真实监控数据决定要不要升配。跑的是面向国内的业务,机房位置比 CPU 型号更影响体验;跑的是欧美用户,选美国机房的物理服务器,像圣何塞独立服务器这种 2*E5-2697V2 配 32G、30Mbps 带宽的配置,适合对稳定性和独享资源有要求的场景。反过来,如果只是学习练手,一个月几十块的入门配置完全够用,不必上独服。