前几天一个朋友买了一台云服务器,登录上去之后盯着终端发呆,来问我第一件事该做什么。这个问题我见过不下几十次了。很多人手里突然有了一台带公网IP的Linux机器,第一反应是装宝塔、装桌面环境、或者直接跑一个不知道哪来的脚本,然后过几天发现服务器被爆破、磁盘满了、站点打不开,最后到处查教程。真正懂服务器的人并不是知道某个冷门命令,而是脑子里有一套“先做什么、后做什么、出问题往哪查”的完整顺序。
这篇备忘录就是我这些年折腾服务器、帮人救火之后的经验沉淀。它涵盖了一个人从拿到服务器到上线业务,再到日常运维和故障排查的完整链路。不管你手里的是一台阿里云、腾讯云、AWS的云主机,还是公司机房里的物理服务器,或者家里一台退役的Intel小主机,只要跑的是Linux,这套思路基本都通用。文章会涉及系统初始化、远程连接、常见服务搭建(比如RTMP推流、Web应用、文件下载)、备份巡检、安全加固,以及一批高频故障的具体排查方法。
文章很长,建议收藏后按需查阅,不用一口气背完。
1. 先把"服务器"这三个字搞清楚:它可能根本不是你想的那台铁箱子
1.1 物理机、虚拟机、云主机和容器,到底哪个才是"服务器"
很多人一听到“服务器”就联想到机房里的机架式铁箱子、闪烁的硬盘指示灯。但实际上在日常工作中,"服务器"这个词指代的范围宽得多。云服务器(ECS、轻量应用服务器、AWS EC2)本质上是跑在物理机上的虚拟机,宿主机把CPU、内存、磁盘通过网络虚拟化切分给多台虚机共用。你ssh登录进去看到的,就是一台完整的Linux系统,底层是什么对它完全透明。
你在自己电脑上用VMware、VirtualBox或KVM开出来的虚拟机,同样也是一台“服务器”。很多人在本机开了一台CentOS虚拟机做实验,结果一模一样。
还有一个容易被忽略的形态:容器(Docker)。容器不是虚拟机,它跟宿主机共享内核,只是通过命名空间做了资源隔离。跑一个nginx容器,它对外提供服务,行为和一台服务器没有区别,但你不能在容器里单独改内核参数。这里有一个关键判断标准——你是用systemd来管理服务的,还是在容器里单跑进程的?前者更像传统服务器,后者更接近“进程隔离环境”。
在我实际帮人排查问题的过程中,遇到过不少这样的乌龙:有人报“服务器连不上了”,结果发现是容器被重启了;有人在容器里改/etc/sysctl.conf,重启后全丢;还有人对着云服务器控制台的“远程连接(VNC)”一脸懵,以为那就是全部。搞清楚你手里的东西属于哪种形态,直接决定了后续操作方式。
1.2 选型决策树:什么场景用什么方案最省钱又省心
选服务器方案,核心是三个约束:预算、性能需求、维护意愿。我见过太多人一上来就买高配,结果CPU常年1%占用;也有人为了省钱买了1核1G的机器,跑个数据库就内存告急。
下面是我这几年用下来比较稳妥的选型参考,按场景分类:
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 个人博客、轻量API、静态站点 | 云厂商轻量应用服务器(2核2G起步) | 自带镜像市场,防火墙和安全组操作简单,价格便宜 |
| 企业Web应用、数据库 | 云服务器ECS规格(4核8G以上) | 存储可选SSD云盘,支持快照备份,适合长期运行 |
| 学习Linux、跑实验环境 | 本机虚拟机(VirtualBox/KVM) | 零成本,快照回滚方便,适合乱折腾 |
| 家庭影音、NAS、智能家居 | Intel NUC/退役台式机 + Linux | 功耗低,性能远超同价位云主机,数据在自己手里 |
| 临时项目、CI构建 | 按量付费云主机 | 用完释放,不浪费 |
| 高并发对外服务 | 服务器集群 + 负载均衡 | 单机再强也有极限,横向扩展才是正路 |
关于“免费服务器”和“亚马逊免费服务器”,很多人冲着免费去薅。AWS的免费套餐确实存在(新账号12个月内每月750小时t2.micro/t3.micro),但要注意两个坑:一是超量以后会直接产生账单;二是免费实例性能很弱,装个面板都卡。类似地,国内一些厂商的“免费试用”往往伴有续费要求。如果你只是想练手,我的建议是别把精力花在验证手机号、抢免费名额上,不如用虚拟机或者买一台几十块钱一年的轻量服务器,省下来的时间远超过那点钱。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 新服务器到手,先做这几件事,不然以后天天踩坑
2.1 操作系统与架构选型:Linux发行版不是越新越好
新服务器第一道选择题就是操作系统。国内云厂商默认镜像五花八门:Ubuntu、Debian、CentOS Stream、Rocky Linux、Alibaba Cloud Linux、openEuler……如果你没有特殊理由,我建议Debian系(Ubuntu LTS或Debian stable)优先。
原因很简单:软件源里的包新、依赖好解决、社区资料多。CentOS 7已经全面停止维护,CentOS Stream变成了滚动发行版,不适合追求稳定的生产环境。Rocky Linux和AlmaLinux是RHEL的下游替代,适合那些必须兼容RHEL系的企业场景,或者你之前习惯了yum。但新人的话,别纠结,直接Ubuntu 22.04 LTS或24.04 LTS。LTS版本有五年维护期,后面升级软件不会遇到“源失效”的尴尬。
还有一个容易忽略的点:CPU架构。现在很多云厂商推出了ARM架构实例(比如阿里云倚天、AWS Graviton),同样的配置价格更便宜。如果你的业务是Nginx、Java、Go这类跨架构良好的应用,ARM完全没问题。但如果你要跑一些只有x86二进制包的旧软件,或者依赖某个不开源的.so库,那就老老实实选x86_64。选错架构意味着后面所有软件都得重新找安装方式,甚至装不上。判断架构用一条命令:
bash复制uname -m
# x86_64 表示 Intel/AMD 64位
# aarch64 表示 ARM 64位
2.2 时区、时间同步和主机名:三个"新手必调项"
很多从Windows转过来的人最容易忽略的就是时区。新装系统的默认时区往往是UTC,日志时间比北京时间慢8小时。排查问题的时候你盯着日志,发现时间对不上,还以为服务没反应。
调整时区和时间同步的标准操作:
bash复制# 查看当前时区
timedatectl
# 设置为上海时区(国内服务器统一用这个)
timedatectl set-timezone Asia/Shanghai
# 开启NTP时间同步
timedatectl set-ntp true
# 确认状态
timedatectl
生产环境我强烈建议装chrony做时间同步,而不是依赖系统自带的ntpdate。原因是chrony在虚拟机环境里同步速度更快,而且对网络抖动容忍度更高:
bash复制apt install chrony -y
systemctl enable --now chrony
chronyc sources -v
时间不同步带来的问题非常多。数据库主从复制报错、日志时间错乱、HTTPS证书校验失败、定时任务在奇怪的时间触发——我都遇到过。处理完时区再改主机名:
bash复制hostnamectl set-hostname web-01
改完记得把/etc/hosts里对应的行也改掉,不然有些程序(比如sudo、Java应用)解析主机名会变慢。
2.3 系统盘和数据盘:千万别把所有东西都塞在根分区
云服务器通常会有两块盘:系统盘(40G左右)和数据盘(你额外购买的数据盘)。很多新人拿到机器后根本不管数据盘,所有东西往/目录下写,直到系统盘满了,数据库直接宕掉。
正确的做法是:格式化数据盘、挂载到特定目录,然后把需要持久化的数据都放那里。比如:
bash复制# 查看磁盘
lsblk
# 假设数据盘是 /dev/vdb,格式化并挂载到 /data
mkfs.ext4 /dev/vdb
mkdir -p /data
mount /dev/vdb /data
# 写入fstab实现开机自动挂载
echo '/dev/vdb /data ext4 defaults 0 0' >> /etc/fstab
如果你用的是云厂商的“按量付费数据盘”,这一步尤其重要。因为系统盘通常
