VPS 入门:怎么选、怎么初始化
2026-03-08
VPS(虚拟专用服务器)是把一台物理服务器切成多份出租的云主机。个人搭博客、跑小服务、做学习环境,一台入门配置就够用。
VPS 和其他方案的区别
最早我是用虚拟主机放网页的,后来发现很多事情做不了:不能自己装软件、不能改系统配置、也没法跑常驻的后台程序。VPS 给你的是一个完整的 Linux 系统,拥有 root 权限,你可以自己决定装什么、开哪些端口。代价是安全和维护都要自己负责:系统更新、防火墙、备份,没有人替你做。
和物理独立服务器相比,VPS 价格低、开通快,适合个人使用;和纯托管的静态网站服务相比,VPS 更灵活,但需要你有一点运维基础。如果你只想放几个静态页面,托管服务可能更省事;如果想学习 Linux、折腾服务,VPS 是很好的实验场。
选购时看什么
- 地区:用户在国内就优先选国内或香港、新加坡等延迟低的节点。注意:如果服务器在中国大陆,域名必须先备案才能对外提供网站服务;境外节点不强制备案,但面向国内用户的网站仍应按规定办理。
- 配置:静态博客 1 核 1G 就够;跑数据库、容器建议 2G 以上内存。
- 带宽与流量:看清是限速还是限总流量,超出后怎么计费。
- 系统:新手选 Debian 或 Ubuntu LTS,资料多、更新稳定。
- 快照与备份:有快照功能的更省心。
关于备案
很多人踩过这个坑,所以单独说一下。网站服务器放在中国大陆境内时,需要通过接入服务商(通常就是你购买服务器的云厂商)办理 ICP 备案,备案通过后才能用域名对外提供网站服务。具体材料、流程和审核周期以所购服务商和管理部门的要求为准,请直接查看服务商的备案指引,这里不做展开。备案号需要按规定放在网站页脚,本站页脚就能看到。
如果你选的是境外节点,一般不涉及这一步,但仍然要遵守相关法律法规,也要注意延迟和访问稳定性是否满足你的需要。建议先想清楚网站面向谁,再决定地区,不要买完机器才发现域名用不了。
一个粗略的选配思路
| 用途 | 内存参考 | 说明 |
|---|---|---|
| 静态博客、个人主页 | 512M 到 1G | 配合 Caddy 或 Nginx 即可 |
| 小型动态网站 | 1G 到 2G | 数据库会占用不少内存 |
| Docker 多个容器 | 2G 以上 | 容器多了内存最先吃紧 |
| 学习实验 | 1G 左右 | 随时可以重装,别放重要数据 |
以上只是我个人的经验性参考,不同软件差别很大,实际以监控数据为准。内存不够时可以考虑加一点 swap,但 swap 只是应急,不能代替真正的内存。
拿到机器后的第一步
- 更新系统:
apt update && apt upgrade。 - 新建普通用户,不要长期使用 root 登录。
- 配置 SSH 密钥登录,并关闭密码登录(详见《SSH 安全加固》一文)。
- 开启防火墙,只放行需要的端口(如 80、443 和自己的 SSH 端口)。
- 设置时区,确认时间同步正常。
下面把这几步展开成可以直接照着做的命令。以下均以 Debian 或 Ubuntu 为例,请用 root 或有 sudo 权限的账号执行。
更新系统并安装常用工具
apt update apt upgrade -y apt install -y sudo curl vim ufw
有些最小化镜像默认没有 sudo,所以顺手装上。如果升级时提示内核更新,通常重启一次即可:reboot。
创建普通用户
adduser deploy usermod -aG sudo deploy
deploy 只是示例用户名,换成你喜欢的即可。创建后先别急着退出 root 会话,新开一个终端用这个用户登录,并执行 sudo whoami 确认返回 root,说明权限配置没问题。
配置密钥登录
在你自己的电脑上生成密钥,并把公钥传到服务器:
ssh-keygen -t ed25519 ssh-copy-id deploy@203.0.113.10
这里的 203.0.113.10 是文档专用示例地址,请换成你自己的服务器 IP。确认能用密钥登录之后,才可以考虑关闭密码登录,具体步骤和风险我在 SSH 安全加固 里写得更细,请务必先读完再操作。
防火墙:小心把自己锁在外面
Debian 和 Ubuntu 上最容易上手的是 ufw。关键点是:先放行 SSH,再启用防火墙。顺序反了,当前连接可能立刻失效,你就进不去服务器了。
ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw status verbose ufw enable
如果你改过 SSH 端口,第一条要换成实际端口。启用后再新开一个终端测试能否登录,确认无误再关闭旧会话。另外,很多云厂商还有一层“安全组”,它独立于系统里的防火墙:系统放行了而安全组没放行,外部一样连不上。排查时两边都要看。防火墙更完整的用法可以看 防火墙 一文。
时区与时间同步
timedatectl set-timezone Asia/Shanghai timedatectl status
输出里如果看到 System clock synchronized: yes,就说明时间同步正常。时间不准会带来很多奇怪的问题,比如证书校验失败、日志时间对不上,所以这一步不要省。
域名、解析与 HTTPS
机器初始化好之后,下一步通常是让别人能通过域名访问。先到域名服务商那里添加一条 A 记录,指向服务器的公网 IP,原理见 DNS 是什么。然后部署 Web 服务并启用 HTTPS,可以参考 HTTPS 与证书 和 Caddy 的相关文章。注意,大陆节点要等备案通过后再对外提供网站服务。
快照与备份习惯
我的习惯是每次做大改动之前先打一个快照,比如升级系统、修改 SSH 配置、迁移数据库。快照适合“回到某个时间点”,但它通常和服务器放在同一个服务商那里,不等于异地备份。重要数据(数据库导出、配置文件、网站内容)最好另存一份到别处,并且偶尔真的试一次恢复,确认备份是可用的。
常见问题与排查
- SSH 连不上:先确认 IP 和端口是否正确,再检查云厂商安全组和系统防火墙是否放行;可以在本地用
ssh -v查看详细过程。 - 磁盘满了:用
df -h看分区使用情况,用du -sh /var/log/*找出占用大的目录,日志过大时可以用journalctl --vacuum-size=200M清理。 - 内存不足被杀进程:用
free -h查看,必要时升配或减少常驻服务。 - 网站打不开:依次检查域名是否解析到本机、服务是否在监听(
ss -tlnp)、端口是否放行。
自动安全更新
服务器上线后最容易被忽略的是后续更新。Debian 和 Ubuntu 可以安装 unattended-upgrades,让系统自动安装安全补丁:
sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades
它默认只处理安全更新,风险较小。但自动更新不等于可以完全不管,内核更新后仍需要在合适的时间重启,我一般每隔一段时间登录检查一下 /var/run/reboot-required 是否存在。
基本的监控与日常巡检
个人小站不需要复杂的监控系统,但至少要知道机器是否健康。我常用的几个命令如下:
uptime free -h df -h ss -tlnp systemctl --failed
它们分别告诉你负载、内存、磁盘、正在监听的端口,以及有哪些服务启动失败。其中 ss -tlnp 尤其有用,可以确认有没有不认识的端口暴露在外。发现陌生服务时先弄清楚来历,再决定是关闭还是放行。
几个新手常见误区
- 只看价格:便宜的机器如果网络质量差、经常宕机,反而浪费时间,先看清自己的实际需求。
- 一上来就装一堆东西:面板、数据库、各种工具都装上,既占内存又扩大攻击面,按需安装更好。
- 把所有服务都绑定到 0.0.0.0:数据库、缓存等内部服务应只监听 127.0.0.1,需要远程访问时用 SSH 隧道。
- 忘记续费与到期时间:服务器和域名到期都可能导致数据丢失或网站不可访问,建议设置提醒。
总结
选 VPS 时,先想好用途和面向的用户,再决定地区、配置,大陆节点别忘了备案。拿到机器后的顺序是:更新系统、建普通用户、配置密钥、放行端口再开防火墙、校准时间。每一个可能让你被锁在外面的操作,都先开好第二个会话再动手。做完这些,你的服务器就有了一个比较稳的起点。