一台全新的 VPS,不管是买来托管网站还是运行交易机器人,都是同一个空盒子。同样干净的起点,同样几乎空着的磁盘,除了操作系统几乎什么都没有。装上去的东西从第一次安装起就开始分道扬镳,而且再也不会汇合:Web 技术栈和交易技术栈几乎没有共同的软件,其中一个甚至连操作系统都不一样。
所以不存在一份通用的 VPS 必备软件清单。无论买服务器的目的是什么,每台服务器都需要一层简短的基础配置,此后一切都由用途决定。在此之前的两个决定,也会改变这层基础配置的形态。虚拟主机还是 VPS 决定了你是否拥有 root 权限,而托管型还是非托管型决定了下面五项中有多少需要你自己负责。
TL;DR(太长不看版)
- 没有放之四海而皆准的答案。在简短的基础层之外,由用途来挑选程序,有时甚至挑选操作系统。
- 每台 VPS 首先都需要同样的五类东西:安全的管理员访问、真正开启的防火墙、更新策略、至少恢复过一次的备份,以及能告诉你机器还活着的监控。在 Linux 上,安全的管理员访问通常意味着基于密钥的 SSH;在 Windows 上,则意味着保护好 RDP 或其他管理通道。
- 1 GB 或 2 GB 的 Linux VPS 默认不应添加的三样东西:控制面板、杀毒扫描器,以及邮件系统自带的垃圾邮件和病毒过滤。它们文档中注明的内存需求,可能在你真正的工作负载启动前就占满一台小机器的大部分甚至全部内存。
- 下面介绍十种 VPS 用途,每种都列出真正干活的程序,以及决定它能否跑在你所买机器上的那一个约束。
- 这里的每一节都是地图,深入内容请看文中链接的指南。
无论出于什么目的购买,每台 VPS 都需要的东西
新 VPS 上第一个要装的东西,与你买它的原因毫无关系。先装的是五项,无论这台机器最后跑的是网店还是游戏服务器,都是同样的五项。
在 Linux 上,先从基于密钥的 SSH 开始。生成一对密钥,把公钥放到服务器上,在另一个会话中确认密钥登录可用,然后禁用密码认证,因为公网 IP 上开着密码认证的端口,会像磁铁一样吸引登录尝试。
然后是防火墙,要亲自确认它在运行,而不是想当然。Ubuntu 默认自带 UFW 作为防火墙工具,社区文档明确指出 UFW 默认处于禁用状态。预装不等于开启。如果你是通过 SSH 连接的,先放行你实际使用的 SSH 端口,再启用 UFW,并且只开放工作负载需要的其他端口。在默认配置下,第一条规则是 sudo ufw allow 22。
如果还需要 Web 应用防火墙,Linux VPS 可用的免费防火墙方案分为四类,而且很容易混淆。
更新策略排第三,默认行为取决于发行版。Ubuntu Server 默认安装 unattended-upgrades,并会自动应用安全更新。
Debian 没有这样的承诺。它自己的 Wiki 警告说,系统“可能根本没有安装这个软件包,也可能安装了但完全禁用了”。要检查它是否已启用并进行配置,请运行 sudo dpkg-reconfigure unattended-upgrades。
备份排第四,规则是至少恢复一次。从来没人恢复过的备份只是一个假设。把它恢复到一台临时服务器上,看着它正常启动,这时它才算是备份。
第五是监控通道,也就是在用户告诉你之前就先告诉你服务器宕机的东西。一个轻量的在线状态检查工具就够了。没有可靠的公式能把监控项数量换算成内存,所以先从 1 个 vCPU 和 1 GB 开始,边用边观察。
除了这五项之外,加固本身是一个独立项目,而不是一个步骤。已经有一份 Linux VPS 的 20 项检查清单,以及对应的 Windows 版本专门讲这件事。
接下来是更难的那一半:1 GB 或 2 GB 的 Linux VPS 上默认不该添加什么。CloudPanel 在你的网站用上任何资源之前,就要求至少 2 GB 内存。ClamAV 自己的文档建议 3 GiB 或以上。Virtualmin 的低内存指南则建议,在内存紧张时完全禁用 SpamAssassin 和 ClamAV。
这些是厂商的要求和建议,而不是个人偏好。除非这些软件正是你买 VPS 要跑的工作负载的一部分,否则它们三个在小机器上都不适合作为默认选项。
每种用途运行什么
这十种场景之间真正不同的,与其说是机器的大小,不如说是哪两三个程序必须先到位,其他东西才有意义,以及通常由哪个约束决定这台机器要多大。
| 用途 | 真正干活的程序 | 决定配置的因素 |
|---|---|---|
| 网站或 Web 应用 | NGINX 或 Caddy、MariaDB 或 PostgreSQL、WordPress 或 Ghost | 流量,以及有多少个网站共用这台服务器 |
| 自托管 SaaS 替代方案 | Docker、Portainer 或 Dockge、Coolify | 同时运行多少个服务 |
| 交易 | MetaTrader 4 或 5、QuantRocket、BTCPay Server | 到经纪商接入点的网络路径 |
| 私有 VPN 或 Mesh 网络 | WireGuard、WireGuard Easy、Tailscale | 并发隧道数和带宽 |
| 游戏服务器 | Minecraft(Paper、Forge、Quilt)、Pterodactyl Panel 和 Wings | 玩家数量和模组数量 |
| AI 模型与推理 | Ollama、Open WebUI、LiteLLM、Qdrant | 模型大小与可用内存的对比 |
| 远程桌面 | IceWM over XRDP、Kasm Workspaces、RustDesk | 并发会话数和桌面环境的负担 |
| 开发与 CI | Code Server、Gitea 或 Forgejo、Jenkins、Docker | 构建并发量,而不是编辑 |
| 自动化与机器人 | n8n、Activepieces、Node-RED | 工作流活跃度和历史记录保留时长 |
| 媒体 | Jellyfin、Navidrome、Audiobookshelf | 存储空间,以及是否需要转码 |
第三列值得读两遍。加 CPU 是条件反射式的升级,但在其中好几行里,它并不是起决定作用的约束。
托管网站或 Web 应用
决定这台服务器形态的,不是哪个 Web 服务器更快,而是由谁来管理 TLS 证书。Caddy 自己签发并续期证书,不需要额外工具。NGINX 需要 Certbot 之类单独的 ACME 客户端,以及更多手动配置,作为回报,它空闲时的内存占用更小。如果在做决定之前需要核对这种取舍,两份配置文件已经并排放在一起。
其余部分跟着应用走,而不是反过来。许多动态应用需要数据库,至于用 MariaDB 还是 PostgreSQL,通常取决于应用支持什么,而不是个人偏好。只有当应用确实需要缓存、会话、队列或其他基于 Redis 的功能时,Redis 才值得占一席之地。如果有多个网站或服务要共用这台服务器,反向代理,也就是站在前端、按主机名把每个请求转发给正确应用的那个进程,能在端口混乱开始之前就终结它。Nginx Proxy Manager 给这项工作加上了图形界面,2 GB 内存就能轻松运行。
有一点需要注意,而且它会把你完全引向 VPS 之外。如果需求只是一个没有特殊要求的小网站,托管型主机是说得通的选择,自己管理服务器只是白白多出来的工作。一旦网站需要托管套餐不肯为你安装的东西,VPS 就值回票价了。
用自托管工具替换付费 SaaS
在这里,Docker 是决定顺序的那个选择,它要排在你想要的所有应用之前。容器运行时把每个服务及其依赖密封在各自的盒子里,这样 Nextcloud 的 PHP 版本和 Immich 的机器学习库就永远不会互相打架。Portainer 或 Dockge 为这个运行时提供 Web 界面,让你看到正在运行什么。Coolify 更进一步,把服务器变成更接近部署平台的东西,支持 git push 构建和自动 TLS。管理层要在运行时之后再选,而不是用它来代替运行时。
小贴士: 从 Docker 官方仓库安装 Docker,而不是从发行版的仓库安装。 Docker 的安装文档 把发行版提供的软件包称为非官方软件包,并要求在安装 Docker Engine 之前将其移除。这个软件包就是
docker.io.
应用本身是最简单的部分,而这恰恰就是问题所在。在 r/selfhosted 上一个帖子里,讨论的是大家长期保留哪些自托管服务,楼主列出了一系列自己搭起来又放弃的替代品,没有一个是在部署阶段失败的。给出的原因在于界面不够精致和害怕失去访问权限。VPS 能彻底解决后一半问题,因为它不依赖家里的电力,也不依赖家庭宽带是否在线。对前一半问题,它完全无能为力。
交易:外汇、算法交易与加密货币
这是唯一一个操作系统可能改变的部分。MetaTrader 4 和 MetaTrader 5 是 Windows 应用,所以交易服务器通常仍是通过 RDP 访问的 Windows Server。MetaQuotes 也支持通过 Wine 在 Linux 上运行 MetaTrader,因此 Windows 只是更简单的原生方案,而不是硬性要求。QuantRocket 是同一份清单中偏算法与量化研究的一端,BTCPay Server 负责处理加密货币支付。两者都是 Linux 上的 Docker 工作负载。
规格不如地图重要。一位计划在五家经纪商上运行 MT5 机器人的交易者在 r/VPSforTradings 上提问,哪台 VPS 到每家经纪商具体数据中心的延迟最低,而这正是起决定作用的问题。主要经纪商的接入点集中在少数几个数据中心枢纽周围,你需要测量的是 VPS 到经纪商接入点之间的网络路径。两台处理器完全相同的服务器,放在不同网络或不同城市,在这项工作上的表现可能天差地别。
这让最显而易见的升级变成了错误的升级。多买核心并不会缩短路径,先选位置,再选套餐,才是这个决定所在的地方。
借助低延迟 Forex VPS,让你的交易全天候在线。
获取交易 VPS运行私有 VPN 或 Mesh 网络
这里有两种形态,而且不能互相替代。VPS 上的 WireGuard 服务器为你的设备提供一条通往该服务器,以及通往你经由它路由的任何地方的加密通道。WireGuard Easy 把这套配置包进 Web 界面,于是添加一个对端不再意味着手动编辑配置文件。像 Tailscale 这样的 Mesh 网络则完全是另一回事:设备会尝试彼此直接连接,但在无法直连时,流量可以走对等中继或 DERP 中继。它的协调层负责分发设备互相发现和连接所需的信息。OpenVPN AS、Pritunl、ZTNET 和 WGDashboard 填补了这两极之间的空间。
在 r/selfhosted 上一个关于这个选择的帖子里,一位回复者说出了依赖 Tailscale 让他们担心的地方:他们“只是担心 Tailscale 在努力盈利的过程中变得越来越糟”。这是对供应商的担忧,而不是对价格的担忧。自己运行隧道,就把这家公司从链条中拿掉了。
这也会增加工作量。托管的协调服务器确实更省运维,而对于一台笔记本连接一台服务器的情况,自建 Mesh 网络是杀鸡用牛刀。这种情况下,普通的 WireGuard 就够了。
托管游戏服务器
游戏本身很好装,面板才是要做的决定。光是 Minecraft 就有好几种服务端,选哪一种取决于你想要什么:普通生存服追求性能就用 Paper,整合包才是重点时就用 Forge 或 Quilt。直接在服务器上运行完全没问题。放在 Pterodactyl Panel 及其 Wings 守护进程下运行,或放在 PufferPanel 下运行,能获得按服务器划分的资源限制、Web 控制台,以及无需交出 SSH 就能给朋友重启权限的办法。Nakama 则是完全不同的产品,面向开发游戏的人,而不是托管游戏的人。
r/admincraft 上的一篇指南完整走了一遍从空白 VPS 到运行在 Pterodactyl 上的自动化模组服务器的全过程,很能说明面板路线能带来什么。
代价是多了一套需要打补丁的系统,而且永远如此。对于只给六个朋友玩的单个原版服务器来说,面板是超出游戏需要的基础设施。模组数量是另一个需要关注的变量,为 ARK 服务器安装模组展示了这在实践中意味着什么。任何公开的东西,也都需要在别人发现之前做好防护。
运行 AI 模型与本地推理
Ollama 负责运行模型,Open WebUI 是装在它上面的界面。只有当调用需要在多个提供商之间路由时,LiteLLM 才值得放在前面;只有当检索是计划的一部分时,才需要 Qdrant。
没有 GPU,天花板来得很快。有人在一台只有 CPU 的 8 GB VPS 上尝试 Ollama,结果遇到了内存不足错误:模型需要 7.2 GiB,而空闲内存只有 3.8 GiB,差额已经被操作系统和 Coolify 占用了。小型量化模型,也就是以较低精度存储权重、以便塞进更少内存的模型,只要模型和运行时能装进系统内存,就可以在 CPU 上运行。装得下,通常的代价是推理变慢;装不下,进程就可能因内存不足错误而失败。
质量是第二道边界。在 r/selfhosted 上一个帖子里,讨论的是自托管 Ollama 是否值得,一位评论者形容他们试过的开源模型“质量更差”,还说“你是打不过这些价值数十亿美元的巨头的”。这只是一位用户的经验,而不是适用于所有开源模型的规律。自托管让你掌控数据和基础设施;它在质量或成本上能否胜过托管 API,取决于模型、工作负载和利用率。与托管 API 的成本对比展示了经济账在哪里发生变化。更大的模型、更高的并发或更严格的延迟目标会把它变成硬件问题,而这正是我们的 GPU 套餐的用武之地。
远程桌面或云工作站
“远程桌面”这个说法背后藏着三种不同的机制,按产品名而不是按机制来选,正是人们选错的原因。RDP 会话是运行在服务器上、供你登录的真实桌面:Cloudzy 的 IceWM over XRDP 一键镜像是这里的轻量组合,把 IceWM、Terminator、Falkon 和启用 TLS 的 xRDP 监听器打包在一起,而 Linux Mint 则提供完整桌面而非精简桌面。
Kasm Workspaces 可以在浏览器中按需提供容器化的应用和桌面,也可以通过 Server workspaces 接入现有的 RDP、VNC、SSH 和 KasmVNC 服务器。Neko 又是另一回事:它通过 WebRTC 把一个共享的虚拟浏览器串流给房间里的多个人,这并不是任何人登录的桌面。
如果你想要的是服务器自己的桌面,请使用基于 RDP 或 VNC 的 Kasm Server workspace,而不是容器 workspace。Kasm 原生的容器会话是独立的环境,而不是宿主机的桌面。
如果你想访问的机器已经存在,只是需要连上它,RustDesk 无需搭建任何桌面就能连上;而当你只需要一个 shell 时,Sshwifty 会在浏览器里给你一个 shell。先确定协议,再考虑产品名:通过 RDP 连接和串流浏览器会话,并不是贴着不同标签的同一件事。
开发、构建与 CI 服务器
Code Server 把 VS Code 放进一个指向服务器文件系统的浏览器标签页,正因如此,把机器上的其他部分放在一起才有意义:Gitea 或 Forgejo 存放编辑器打开的仓库,Jenkins 运行这些提交触发的流水线,Docker 则在两者之下。较新的一块是如今也运行在同一台机器上的 AI 编程智能体:Claude Code、Aider、OpenCode 和 Goose CLI。
这种显而易见的配置并不是唯一的选择。在 r/selfhosted 上一个关于远程开发环境的帖子里,有位回复者主张反其道而行:把编辑器装在本地,通过远程开发扩展指向 VPS,这样界面留在本地,只有文件和执行在远端。楼主的抱怨是快捷键被宿主机截获而不是交给浏览器,这正是浏览器版本的真实代价。
两种方式都合理。用 AI 智能体运行 Code Server 从头到尾走了一遍浏览器方案,而自托管开发者技术栈涵盖了编辑器周边的所有东西。
自动化、机器人与定时任务
n8n 是常见的起点,也是合理的默认选择:一个可视化工作流构建器,节点是服务,连线是在它们之间流动的数据。Activepieces 做的是类似的工作,但许可证更宽松。Node-RED 从另一个方向切入同一个问题,它基于流程,根植于设备和事件的连线,而不是 SaaS 之间的粘合。Dagu 是面向依赖图的调度器,适合你手上其实是一组需要按顺序执行的 cron 任务的情况。
这些服务在任务之间也会持续运行。它们的资源占用会随工作流活跃度增长,而保留的执行历史主要会让数据库和存储占用变大。这使它们成为那种在看似一切正常几个月之后,悄悄撑爆最小规格服务器的工作负载。 自托管 Zapier 替代方案对比 包含许可证细节和规格建议。
提供媒体服务
这里的第一个约束通常是存储,但转码可能让 CPU 或 GPU 的能力成为决定性因素。视频用 Jellyfin,音乐用 Navidrome,有声书和播客用 Audiobookshelf,它们各自把媒体库扫描器、元数据抓取器和流媒体服务器打包进一个应用,安装方式和其他 Web 服务一样;AzuraCast(网络电台)和 Immich(照片)也是同样的模式。
这使得 VPS 往往不是合适的形态。实时转码会消耗小服务器没有富余的处理器时间,而家里一台带大容量硬盘的机器,通常更适合存放媒体库本身,VPS 的价值则在于远程访问和保持在线。 Plex 替代方案对比 梳理了哪个服务端适合哪个客户端。
全部装好之后,哪些事归你负责
上面提到的每个程序都附带一份工作。总得有人给它打补丁、盯着它的内存、续期它的证书,并确认备份能不能恢复。在自管的 VPS 上,这个人就是你,而且每多一个场景跑在同一台机器上,负担就多一分。
安装这一半才是值得缩短的部分。如果你选的软件有一键应用版本,就能缩短安装步骤,而不是留给你一台空白服务器和一个开着的文档标签页。部署在 Linux VPS 上,第一个小时就能花在你买服务器真正要做的事情上。运维这一半无论如何都归你。这部分是外包不了的。
在拥有 root 权限、NVMe 与 AMD EPYC 强大性能的 Linux VPS 上构建应用。
查看 Linux 套餐常见问题
VPS 上需要控制面板吗?
只有当它替你做不止一件事时才需要。当面板管理多个网站、多个非技术用户,以及原本需要你手动配置的邮件或 DNS 时,它占用的内存才物有所值。低于这个门槛,它只是夹在你和一个本可直接管理的服务之间的一层,还会和那个服务争抢内存。 Linux 控制面板方案对比 细数了每款面板在功能和许可证上的成本。
在 VPS 上应该用 Docker 安装软件,还是原生安装?
多服务技术栈、打算迁移到其他主机的工作负载,或者依赖之间会互相冲突的情况,适合用容器。如果小 VPS 上只有一个长期运行的服务,原生安装更容易管理,就原生安装。一台运行一个 Web 服务器和一个数据库的 1 GB 服务器,未必能从 Docker 中获益;更大的多服务技术栈往往能获益,但单凭内存大小并不能决定这一点。
没有 GPU 的 VPS 能运行 AI 模型吗?
可以,前提是小型量化模型。内存决定模型能否与操作系统及其他正在运行的一切一起加载;CPU 性能决定加载后运行得有多快。更大的模型、更高的并发或更严格的延迟目标,通常会把你推向拥有足够显存的 GPU。
交易 VPS 必须用 Windows 吗?
对 MetaTrader 4 和 MetaTrader 5 来说,Windows 是最简单的原生选项,而不是硬性要求。MetaQuotes 也支持通过 Wine 在 Linux 上运行 MetaTrader。其他交易工作负载,包括基于 Python 的算法工具和 BTCPay Server 这类加密货币支付软件,都可以直接在 Linux 上运行。决定操作系统的,是你用来交易的平台。
一台 VPS 能同时承担多种用途吗?
可以,而通常限制能承担多少种的是内存。几个轻量服务可以在 4 GB 上共存,而游戏服务器和 AI 模型很快就会争抢内存。另一个要考虑的是爆炸半径:把面向公网的服务和你在乎的东西放在一起,意味着一次入侵可能危及两者。在拆分其他任何东西之前,先把面向互联网的东西和重要的东西分开。

讨论
评论
登录后参与讨论。