VPS到手后第一件事:我的10分钟初始化清单
前段时间写了一篇怎么挑 VPS 的文章,不少…
前段时间写了一篇怎么挑 VPS 的文章,不少朋友留言问我:「大叔,机器到手之后第一步该干啥?」
大家好,我是IT大叔。今天聊一件最朴素的事:一台全新的 Ubuntu VPS 到手后,我用哪几个命令把它变成一台「能打仗的机器」。
1. 更新系统
老生常谈,但这是最重要的第一步,没有之一。
如果你拿到的是商家预装的系统镜像,很可能已经离最新版本差了几个月。遗漏的安全补丁是最大的隐患——去年有一个朋友买的 VPS,到手后直接装了个面板就开始跑业务,三个月后被扫到内核漏洞,整个机器被入侵,数据全丢了。
SSH 登进去后先跑这两条:
apt update && apt upgrade -y
apt autoremove -y
apt upgrade 会自动更新所有已安装的软件包。完成后重启一下确认系统能正常启动——至少确保你拿到的这台机器本身是没问题的。
2. 修改 SSH 配置(防爆破)
默认的 SSH 配置是黑客最喜欢的——22 端口、root 可登录、密码登录。不改的话,机器上线后 24 小时内就会被扫到。
编辑 /etc/ssh/sshd_config,改以下三项:
# 改端口(随便换一个不常用的,比如 2222)
Port 2222
# 禁止 root 直接登录
PermitRootLogin no
# 只允许密钥登录,禁止密码
PasswordAuthentication no
改之前先确认你的 SSH 公钥已经加到 ~/.ssh/authorized_keys 里了——否则改完 PasswordAuthentication no 后自己会被关在外面。
改完后重启 SSH 服务:systemctl restart sshd。新开一个终端窗口测试连接正常再关旧的——这是常识,但我见过太多人改完没测就直接断了。
3. 防火墙:先拒绝所有入站,再按需放行
新建一台 VPS,它的默认状态是「大门敞开」——所有端口都对公网开放。很多商家的默认镜像甚至没有启用防火墙。
用 ufw 最简单(Ubuntu 自带):
# 先设默认策略:拒绝所有入站
ufw default deny incoming
# 放行你刚改的 SSH 端口
ufw allow 2222/tcp
# 启用防火墙
ufw enable
注意 ufw enable 执行后你的 SSH 连接不会断,因为放行了对应的端口。如果要开 Web 服务再加 ufw allow 80/tcp 和 ufw allow 443/tcp。
典型翻车场景:有人先开了 Docker 再开 ufw,发现 Docker 的端口没被 ufw 管住——因为 Docker 的 iptables 规则优先级高于 ufw。解决方案:在 /etc/ufw/after.rules 里加 Docker 网段的规则,或者在 /etc/docker/daemon.json 里设置 "iptables": false。
4. 设置 Fail2Ban 防暴力破解
即使你禁了密码登录,Fail2Ban 依然值得装——它不止保护 SSH,还能保护 Web 服务、邮件服务等。
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
默认配置已经保护 SSH。如果你想自定义封禁时长,编辑 /etc/fail2ban/jail.local:
[DEFAULT]
# 封禁 24 小时
bantime = 86400
# 5 次失败后封
maxretry = 5
findtime = 600
装完后 systemctl enable fail2ban && systemctl start fail2ban。可以用 fail2ban-client status sshd 查看当前封禁情况。
5. 安装 Docker(现代服务器标配)
90% 的服务现在都可以用 Docker 跑——Nginx、数据库、监控、AI 推理引擎。装 Docker 比一个个手动装依赖靠谱多了。
curl -fsSL https://get.docker.com | sh
装完把当前用户加入 docker 组:usermod -aG docker $USER。重新登录后就不用每条命令都加 sudo 了。
可选但推荐:装 Docker Compose 插件:apt install docker-compose-plugin -y。现在 docker compose 已经是 Docker 官方内置的子命令了,不需要单独装二进制文件。
6. 时区和 Swap(容易被忘的基础配置)
VPS 默认时区通常是 UTC,日志时间跟我们对不上,排查问题时很痛苦。
timedatectl set-timezone Asia/Shanghai
1GB 以下的小鸡建议开 Swap 防止内存不足时 OOM 杀进程:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Swap 的大小一般设为内存的 1-2 倍。1GB 内存的小鸡开 2GB Swap 比较合理。
7. 装个监控,心里踏实
推荐装两个轻量级工具,对资源占用几乎可以忽略:
netdata:实时监控 CPU、内存、磁盘、网络,浏览器打开就能看仪表盘。安装:bash <(curl -Ss https://my-netdata.io/kickstart.sh)。
Uptime Kuma(Docker 版):用来监控你部署的服务是否在线。如果宕机了它会通过 Telegram/邮件/微信等方式通知你。安装:docker run -d --name uptime-kuma -p 3001:3001 louislam/uptime-kuma。
Uptime Kuma 的具体用法我在这篇里有详细写:10美元/年的VPS还能做什么?2026年VPS玩法完全盘点,里面还包括 Alist、Miniflux 等一堆好玩的服务。
8. 备份脚本(最后一步,也是最重要的一步)
写个简单的脚本定期备份关键数据到其他机器或对象存储:
#!/bin/bash
# 每天凌晨 3 点执行
tar -czf /backup/etc-$(date +%Y%m%d).tar.gz /etc
# 如果装了 Docker,备份所有卷
docker run --rm -v some_volume:/source -v /backup:/dest alpine tar czf /dest/volume-$(date +%Y%m%d).tar.gz -C /source .
# 删除 7 天前的备份
find /backup -name "*.tar.gz" -mtime +7 -delete
放到 cron 里每天执行:0 3 * * * /root/backup.sh。数据量不大的话还可以 rsync 到另一台 VPS 做异地备份。
大叔总结:10 分钟初始化清单
拿一台新 VPS 后按这个顺序跑一遍,10 分钟搞定:
- 更新系统 →
apt update && apt upgrade - 加固 SSH → 改端口 + 禁 root + 密钥登录
- 开防火墙 →
ufw default deny incoming - 装 Fail2Ban → 防暴力破解
- 装 Docker → 现代服务器的基石
- 设时区 + Swap → Ubuntu 默认的坑先填上
- 装监控 → 出了问题能第一时间知道
- 配备份 → 数据丢了啥都白搭
VPS 到手后的初始化只是第一步。如果你想了解不同价位 VPS 的横向对比,可以看看 2026上半年性价比VPS横向实测。
