共享主机 vs VPS——什么时候该迁移,为什么

共享主机的瓶颈在哪里:CPU 限额、共享 IP 信誉、inode 上限——以及迁移到 root 权限 KVM VPS 的路径:年付低至 $4.80/月,2 vCPU、4 GB 内存、80 GB NVMe。
共享主机的瓶颈在哪里:CPU 限额、共享 IP 信誉、inode 上限——以及迁移到 root 权限 KVM VPS 的路径:年付低至 $4.80/月,2 vCPU、4 GB 内存、80 GB NVMe。
一台 Apache,数百个租户:你真正签下的那笔交易
共享套餐最反直觉的地方在于:它根本不是一台「小服务器」,而是一条写着你的名字的排队队列。你租用的只是某台你永远不会见到的操作系统上 /home/username/public_html 下的一个目录,而每月低廉的价格并非服务商的慷慨让利,而是「什么资源都不预留」带来的必然算术结果。数百个网站共享同一个内核、同一个 Web 服务进程和同一个 IPv4 地址,你最终撞上的每一道天花板,都能追溯到这个单一的设计决策。
从机制上看,主机跑着一台 Web 服务器,对外服务数百个虚拟主机,另有一层控制面按时间间隔计量每个账户能占用多少处理器时间。请求在限额之内就会被处理;一旦超限,请求会在你的代码还没执行前就以 503 或 508 响应告终。Apache 项目对实现这种高密度的多处理模块有正式说明(Apache HTTP Server 文档)。流量走的是「公平使用」条款,而不是公布的具体端口速率,所以邻居站点发布日的流量洪峰会以错误的形式砸到你的状态页上——尽管错误并非你造成。
同样的资源池化逻辑也支配着邮件和计划任务:一个 Postfix 或 exim 邮件队列服务所有租户,一个调度器串行执行所有租户的定时任务,任何一个账户滥用,代价就是所有人一起被收紧缰绳。这些都不是客服能打补丁修掉的缺陷——正是这套架构造就了这个价格。买共享主机,你得到的其实是一个附带严格配额的排队位次——不是硬件,不是有保障的资源切片,也不是你能据此规划上线流量的容量。
连那些「便利之处」也藏着池化。你排定的备份会计入你自己的配额;你从没要求过的日志会不断累积你的文件数;控制面板本身在你配置时就已消耗配额。改一行 wp-config.php 立刻生效,因为解释器早已为整个节点常驻——这种即时性是共享租用的体面一面,而它同样由那套在你高峰时段掐住你的算术来买单。
典型的错误是把套餐表格当成容量来看:「不限带宽」读起来像上限,实际上却是整页里约束最弱的一行。真正先卡住你的是处理器秒数、并发入口进程数和 inode 数量——销售页上没有一样印在价格旁边。在你学会围绕计量器而不是 TB 数做规划之前,账户内的一切优化瞄准的都是错误的约束——而抛出 500 错误的,正是这个约束,而不是你的代码。
VPS $4.80* 起(年付期限),存储 1–5 TB NVMe 年付折合 $24/月起,带 IPMI 的独立服务器 $39.20/月起。加密货币账单,免 KYC。
立即启动CPU 限额是计量表,不是容量规划
被限流的配额就像预付费电表:跳闸并不代表机器真的没有容量了,只代表你在这一计费周期内把份额用完了。共享面板用内核级的墙来执行这套规则,而这道墙在你当着付费用户的面拖慢结算流程之前,一直是隐形的。这就是为什么经典的故障报告听起来像都市传说——网站一直运行良好,却在你的营销活动恰好上线的那个小时毫无理由地变得极慢。
这背后的机制是围绕每个账户画出的控制组(cgroup)围栏:一份核心配额、一条内存上限、一个并发 worker 上限。内核文档描述了这些面板所基于的模型(内核 cgroup v2 文档)。具体数字:配额 100% 意味着摊到整个节点上相当于一个完整核心的份额;入口进程上限 20 意味着第 21 个并发请求要么排队要么失败。而机器本身全程健康——短缺是合同层面的,不是物理层面的。
压力在报错之前就会显形。内核会记录停顿时间——任务排队等处理器的时段——在你自己的机器上可以直接读 /proc/pressure;而在共享主机上,你只能从面板不情愿提供的延迟曲线里去推断。因为围栏是按账户划分的,你无法从内部穿越它做调优:缓存能拉长预算,但一个连缓存预热都要限流的计量器会抵消收益;一次凌晨的重建索引每次都撞上同一个 60 秒窗口。
面板把触发的计量器呈现为资源通知或用量图表——那是收据,不是诊断。但数字仍然会讲故事:如果你的 p95 延迟跟着营销日历走而不是跟着代码变更走,这就是「配额」而非「应用」的签名。记下哪些时段天花板会咬人——活动上线、早高峰、cron 重叠——因为这些正是日后一次仓促的紧急迁移会让你付双倍代价的时段。
标准的错误是买最大的共享档位,然后指望墙会成比例地外移。墙确实会移,但它仍然是墙,流量高峰照样会撞上去。如果响应时间恰好在需求到来时恶化,你度量的其实是配给。治本的解法在架构层面:容量按套餐表预留,而不是按配额配给——这正是 KVM VPS 为你划出的那条边界。
IP 信誉是继承来的公共资源,不是你自己的分数
这一条最反直觉:即使你从未发过任何可疑邮件,你的邮件送达率也可能崩塌。在共享套餐上,数百个租户通过同一个 IPv4 出站,共用同一条 PTR 记录,接收方系统在阅读任何内容之前就先给这个地址打分。一旦有共同租户用它发垃圾邮件,拉黑名单的记录会落到整个街区头上,你的密码重置邮件会和垃圾邮件一起收到同样的 550 退信。
接收方之所以这样运作,是因为邮件协议认证的是信封,从来不是意图——这一行为在 SMTP 规范中有明确规定(RFC 5321),信誉系统正是为填补这一信任缺口而生。以地址为键的公共黑名单是行业的免疫系统(其查询格式在 RFC 5782 中标准化)。一个坏租户换来一次上榜;共享 25/tcp 出口背后的每个账户都继承这份惩罚,直到记录失效或服务商更换地址。
对你自身努力有回应的是域名一侧:带认证的头信息、列表卫生、发送纪律。没有回应的是地址本身——你无法对一个与陌生人共享的 IP 做预热、轮换或信誉管理,也没有哪家运营商会因为你的新闻邮件滑进促销标签页就给节点换地址。延迟会硬化成明确的 5.7.1 拒收,而你的文案一字未改;变量从来不是文字。
损害叠加之处在于事务性邮件——订单回执、密码重置、账单——与它从未同意为邻的营销邮件共用同一个被污染的出口。一家商店可能因为邻居的一次营销活动丢失整整一周的密码重置流程,看着客服量翻三倍。在接收方的恢复流程漫长且程序化;加大力度重发只会证明对方过滤器是对的,让你已经在挖的坑更深。
典型的错误是:一边打磨 SPF 和文案,一边放任共享地址继续挂在黑名单上;更糟的是靠加大发送量来强推送达。请按正确顺序诊断:先用另一个地址发信,证明地址才是变量;然后把邮件任务迁到你自主掌控的基础设施上。信誉绑定在 A/PTR 对和域名上——两样都握在自己手里,送达率就是可解的题;两样都与别人共享,它就是一个顶着你的名字的陌生人的变量。
真正的配额是 inode,不是 GB
惊喜会以「磁盘已满」的形式降临在一个宣传无限空间的套餐上。共享主机的配额针对的是文件数,而不仅仅是字节数:每封邮件、每张缩略图、每个目录项和每个缓存碎片都占用一个 inode,而这类账户的上限大致在五万到五十万之间。你可能在 GB 用量 40% 时悠闲躺平,却仍然狠狠撞墙,因为真正起作用的计数器统计的是对象数量而不是体积——而销售页面上没有任何一行承认它的存在。
把它填满的过程非常平凡。一个保留着公司创立以来每封邮件的 Maildir,一个每个渲染片段都落一个文件的 CMS 缓存,一个每晚往你自己的配额里做快照的备份插件,每个实验各拉一份的版本库检出——每一个都在增加成千上万个小对象,却从不聚合为看得见的重量。对一个长期账户跑一下 df -i,IUse% 那一列会说出营销漏掉的真话。邮件通常是头号大户:一封带附件的邮件在任何人读它之前就要花掉好几个 inode。
它坏起来的时候,是从侧面坏的。写入开始在操作中途以 ENOSPC 失败:购物车存不下会话,上传落地即截断,数据库临时表拒绝扩展——而用量图表显示一半配额还空着,客服反复强调一切正常。上限会被当成人情上调一次,也许两次;再往后,天花板就是政策,而政策的尽头是一个任何工单都谈不动的硬性最大值。
还有一个人们经常错过的二阶代价:同样的文件数压力会拖慢面板自带的文件管理器,拉长备份耗时,甚至把每夜的导出任务挤出时间窗,于是昨天的快照悄无声息地根本没有发生。配额不只是在到达上限时停止写入——它会在抵达上限之前的数周里让身边的一切都退化,这就是为什么第一个症状往往是你后来才发现「从来没有备份成功过」。
常见的错误反应是按字节逐个删媒体文件,把一个「计数」当成「重量」来对待。正确的做法是按数量审计——对每个目录跑 find . -xdev | wc -l,比任何按体积的猜测都有用——然后把归档类的数据搬走:邮件堆积、图片衍生版本、备份的备份。一个你从内部无法查看的配额,就是一个你无法围绕它做规划的配额;一台有 root 权限的机器会向你展示它执行的每一个计数器——这才是同一份合同的诚实版本。
一块预留切片究竟改变了什么
对 KVM VPS 的诚实描述不是「更大的共享套餐」——而是一份不同的合同。预留切片自带内核、自带虚拟硬件,以及一张把分配印在明面上的套餐表:无论你是否用满,核心、内存和端口速率都归你持有,任何别人的流量尖峰都不会出现在你的监控图上。KVM 项目对使这种隔离可被强制执行的虚拟化边界有正式说明(Linux KVM 项目)。
在 VPSbit,入门之选是 Core:Ryzen 9 9950X 上的 2 vCPU、4 GB DDR5、80 GB NVMe、不限流量的 1 Gbps 端口,以及一个 IPv4 加一段 /64 IPv6。以 $6/月的牌价下单 Core——年付合 $4.80/月——然后把账单和一份高端共享套餐放在一起对比:钱处在同一档位,但上面每一个数字都是预留并公开印出的,而不是藏在「公平使用」的措辞后面配给的。VPS 套餐页面把每个档位和规格并排列出。
root 权限同时拓宽了软件的边界:嵌套虚拟化、无限制的 Docker(没错,--privileged)、自定义 ISO、raw socket——这些恰恰是共享条款逐条禁止的功能,因为每一项都需要内核访问权。你的技术栈不再是主机替你筛选的下拉菜单。邮件服务器、VPN 终端、CI runner、语音中继、游戏房间:全部都能跑,因为内核听你的,没有任何可接受使用附录把这些工作负载逐条剔除。
地理位置也成了规格的一部分。十二个机房构成这张地图——雷克雅未克和苏黎世在其中,还有阿姆斯特丹、法兰克福、东京、新加坡、香港、台北等——每个机房有自己的档位、上联带宽和适用法律,滥用处理由机架实际所在的司法辖区管辖。在共享主机上,你数据的位置只是政策里的一行字;在这里,它是你下单时就选定的属性,随时可以通过重新部署来更改。
要避免的错误是把共享主机的期待带过来——买了切片,却把公开的规格当成可以钻空子的限流值。没有任何东西在限流你;约束转移到你自己的配置、你自己的补丁节奏、你自己的防火墙状态上。天花板现在是套餐表,而不是计量器的心情——这就引出了本页接下来要回答的实操问题:计量器而非规格,究竟什么时候才是你真正的问题?
五个信号,按代价从高到低排序
反直觉的是:那封限流通知邮件——所有人都视为十万火急的信号——其实是五个信号里代价最低的一个。它损失的是性能,不是数据。按实际损害排序:首先是送达率崩塌,因为经由共享 25/tcp 出站的邮件可能无声消失,连一个你能掌控的退信都没有;其次是 inode 之墙,对生产数据的写入在操作中途失败;然后是被迫升级——某些组件在共享主机上根本不被允许,你必须拿到 root;然后是资源通知;最后是同一个排队位次的续费涨价。
这个排序之所以重要,是因为各信号走的是不同的时钟。送达率以周为单位衰减,修复又要数周,所以它值得比清单上任何东西都更早回应。inode 之墙来得突然,毫无宽限期地打断生产写入。限流是慢性的但可以忍受——是冒犯,不是伤害。按损害排序的顺序行动,你往往会在官方信号——那封资源通知邮件——烦到你之前就完成迁移。
读者常误判的地方在于:把资源通知当成待办事项——「去优化网站」——而不是当成对架构的度量。让你保持在计量线以下的优化不是余量;它是一场「需求永远不会增长」的赌注。与此同时,真正在丢失数据的邮件信号反而被忽视,因为从发件人的角度看收件箱似乎一切正常。退信报告——你自己的机器上看 mailq,共享主机上看面板日志——才是诚实的收件箱。
信号之间还存在叠加效应:邮件高峰期间的限流把 SMTP 会话推向延迟(deferral),延迟老化成 5xx 退信,而退信又塑造了上一节讲的信誉故事。这五个信号不是各自独立的警报;它们是同一个拥塞模式穿着五件戏服——这就是为什么修补其中任何一件戏服,很少能让结局的改变超过一个计费周期。
一个实用的阈值:一个季度内出现任意两个信号,说明问题在架构而不是工作负载——直接排期迁移,而不是再跑一轮优化。要求与限制指南详细说明了拿到 root 的那天起哪些事情会改变。信号一和信号五在共享主机上会永远重复;文末的收尾清单会把它们变成一个带回滚窗口的一周项目,而不是一次信仰之跃。
迁移路径,去掉所有戏剧性
迁移中真正吓人的从来不是文件拷贝——SSH 上的 rsync -a 几分钟就能搬完一个典型网站——而是 DNS 切换和邮件。顺序对了,整个搬迁就是平静的一周:开通、基线、搭建、拷贝、切换、保留回滚窗口、注销。顺序错了,你会在一个周末收不到来信邮件,而买家还在猜测你是不是倒闭了。
先开通:选好套餐、付清账单,机器在约 60 秒内完成装机——结算支持十九种加密货币、没有刷卡环节(结算 FAQ 演示了整个流程),因此这次搬迁顺带终结了旧卡的自动续费。在任何网站碰这台机器之前先打好基线:仅密钥登录的 SSH、默认拒绝的防火墙、无人值守安全更新。OpenSSH 项目对仅密钥登录的配置面有正式文档(sshd_config 手册)。
然后是搭建与拷贝:把技术栈或面板立起来,用 rsync 镜像文件,用 mysqldump 加再导入的方式迁移数据库(mysqldump 文档——Postgres 用自己的转储工具保持同样的流程),如果你自托管邮件,把邮件栈预置好。切换前一天,把 A 记录的 TTL 降到 300 秒,让解析器尽快忘掉旧地址——决定切换速度的是记录级 TTL,不是域名服务器的。
经典的错误是在一个「英勇的夜晚」里同时切换 MX、网站和证书,然后在生产环境上边跑边调试。正确的做法是:切换 A 记录,盯新机器上的邮件日志,把旧账户保留数天作为回滚窗口,之后再注销——并且在流量上来之前为新地址提交 PTR 工单(rDNS 指南逐行讲了那张工单怎么写)。Mailcow 的维护者们直言不讳:邮件栈是最需要耐心的那一块(Mailcow 文档)。
把迁移当作两次切换,而不是一次:网站切换可以在几秒内通过把记录指回去而回滚;邮件切换值得单独的一小时、单独的检查清单,以及一套发件侧测试——密码重置、订单确认、回信。每一次实践都证明:干净的切换胜过快速的切换,而回滚窗口正是把迁移从一跃变成一次可回退修改的关键。
拿到 root 意味着承担什么,以及什么会回报你
诚实的账本是这样的:VPS 在把 root 交到你手上的同一个下午,也把补丁、防火墙状态、备份纪律和滥用暴露面一并交给了你。你正在离开的那个抽象层同时也是一副眼罩——在共享主机上数据库变慢时,你想要剖析的进程属于别人,也没人把剖析结果递给你。在你自己的切片上,慢查询是你的,凌晨两点修好它的权限也是你的,不用提交任何工单。
面板和一键脚本把运维差距缩小到大约一个工作日的下午:基础加固、默认拒绝的防火墙(ufw default deny incoming)、一套更新策略、一个备份例行。清单上的大部分只做一次; 长期重复的部分是读自己的日志,以及在你真正需要之前,刻意地做一次恢复演练。快照在结算时作为回滚附加项提供,覆盖的是「今天搞坏了」这类事故,而不是「磁盘死了」这类。
新手在哪里弄坏东西:因为机器第一天表现良好就跳过基线,然后在没有任何恢复路径的情况下继承一次入侵或一块坏卷。第二种失败模式是沉默——共享主机会在计量器跳闸时给你发邮件;而你自己的机器会一言不发地永远停在 100% 处理器占用上。一个在线率探针加一个负载告警(每分钟轮询一次 uptime 就够起步)就能以十分钟的成本、零月费堵上大部分缺口。
还有一个运营者往往很晚才体会到的安静回报:确定性。在共享主机上,第三方变更——新邻居、政策微调、PHP 小版本升级——会在不通知的情况下改变你的运行时。在切片上,唯一能改变环境的力是你自己,这让回归可归因、性能可复现。调试从考古变成阅读;那个神秘失挂数月的应用,变成了一个你能从第一性原理出发推理的系统。
规模是最后的回报:当工作负载需要整颗核心、IPMI 或 TB 级磁盘时,独立服务器的阶梯是同一个结算页。以 $49 牌价下单 Forge——年付合 $39.20——你就在同一张加密货币账单下拿到 16c/32t、2×1 TB NVMe 和 IPMI 交接。买今天够用的最小机器,数字说了算时再扩容切片,并把VPS 与独立服务器对比留着,等整颗插槽的工作负载真的来敲门的那一天。
离开共享主机的完整流程,按执行顺序
提前七天:盘点你实际持有什么——用 df -i 数 inode,导出你想保留的邮件,列出账户承载的每一个定时任务和 DNS 记录。这份清单决定了目标机器的规格——大多数网站落在 2 vCPU 的切片上还有富余——同时它也是你的回滚地图,因为它精确记录了旧账户在最后一个正常工作日都在做什么。
提前五天:开通新机器并打好基线——密钥、防火墙、无人值守升级,然后是技术栈。提前三天:搬内容和数据库,预置邮件——邮件搬迁是最慢的一环,给它单独一整天,而不是结束前的一小时。提前一天:把 A 记录的 TTL 降到 300 秒;正是短 TTL 让切换变成一件无关紧要的小事,而不是一场谁也看不见的全球传播抽签。
切换日当天:拉起新栈,切换 A 记录,然后在接下来的一小时里盯三件事:dig 确认新地址生效,邮件日志显示来信投递成功,证书顺利签发无报错。在回滚窗口内保留旧账户——是数天,不是数小时——因为这个项目里最便宜的保险,就是当新机器还在学习你的真实流量时,那台老套餐仍在正常应答。
用运营者的方式验证,而不是访客的方式:实际走一遍涉及写入的流程——下一单、留一条评论、重置一次密码——确认每一项都落进新栈读取的那份数据库。用你手头任何分析工具对比切换前后的错误率。两个安静的、指标如常的夜晚,比任何一次在深夜精疲力竭时随手做的 curl 检查,都更能说明这次迁移的成色。
窗口关闭后,注销共享账户,项目就完成了:刷卡自动续费随之终止,而十九币结算意味着下一次续费是你有意识批准的一张账单。从这里开始,节奏属于你——每月打补丁,每季度有意做一次备份恢复演练,每当排序清单里有第二个信号在一个季度内出现时,就重跑一遍这套流程。按这个顺序完成的退场是无聊的——而「无聊」正是一场迁移能得到的最高褒奖。
VPS 是不是比共享主机更难运维?
你持有 root,所以补丁、防火墙状态和故障处理都归你。一个控制面板或一键脚本可以抹平与共享主机之间的大部分差距——完整的加固清单装得进一个工作日的下午——而且每一次故障都变成你能亲自诊断的东西,而不是由工单队列替你保管的东西。
VPS 比共享主机贵多少?
Core 牌价 $6/月,年付合 $4.80/月,与高端共享套餐同一档位。区别在于这笔钱买到什么:2 vCPU、4 GB DDR5 和 80 GB NVMe 是在套餐表中预留并公开印出的,而不是藏在「公平使用」措辞后面配给的——上限在你付款之前就已写明。
可以在同一台 VPS 上托管邮件吗?
可以。端口 25 按政策开放,PTR 记录可自行设置,所以 Mailcow 或朴素的 Postfix 栈无需任何解封申请即可运行。用数周时间预热地址,把退信率保持在低位,并发布 SPF、DKIM 和 DMARC,让接收方系统在给你的内容打分之前能验证整条信任链。
迁移后我会失去原来的 IP 地址吗?
会——IPv4 无法在服务商之间迁移,新机器将以一个全新地址应答。围绕它做规划:提前一天缩短 A 记录的 TTL,按深思熟虑的顺序切换,并在流量上来之前为新 IP 提交 PTR 工单,让身份随主机名一起迁移。
年付划算吗?
年付八折,Core 折合 $4.80/月,Forge 折合 $39.20/月,折扣在加密货币换算之前直接作用于美元总额。如果十二个月的承诺太长,三月付享九折——用更浅的折扣换一条更短的缰绳。
可以完全跳过共享主机吗?
有两类工作负载值得从物理机起步:需要整核 CPU 加 IPMI 和 ECC 的场景,指向年付折合 $39.20 起的独立服务器阶梯;以及需要 TB 级归档、想要 Monolith 的 4×2 TB NVMe 配 25 Gbps 端口的场景。其余一切——网站、应用、面板、小团队——都适合先上一块切片,等数字提出要求再升级。