DDoS 防护游戏服务器 VPS — Minecraft、CS2、Rust

面向 Minecraft、CS2 和 Rust 的 tick 帧率、规格计算与真实攻击分析,平台级 DDoS 防护。游戏优化 VPS 年付低至 $4.80/月。
面向 Minecraft、CS2 和 Rust 的 tick 帧率、规格计算与真实攻击分析,平台级 DDoS 防护。游戏优化 VPS 年付低至 $4.80/月。
参数表不会告诉你游戏的真实体验
VPS 价格表上没有任何数字能预测游戏服务器的实际手感,因为决定手感的那个数字几乎从不上头条:单核主频。游戏的模拟运算在单线程上跑 tick 循环,一旦这个循环超时,症状不是崩溃——而是回弹橡皮筋、命中判定漂移,以及一个悄无声息散场的玩家社区。核心数用来卖套餐,主频才决定游戏体验。这是你需要首先内化的常识,因为之后购买的一切都取决于它。
不同引擎吃的资源不同。CS2 受限于 tick 帧率:强单核主频胜过核心数量,这正是 3.25-3.8 GHz 的 EPYC 9354P 或 4.3-5.7 GHz 的 Ryzen 9 9950X 比 vCPU 数量更重要的原因。Minecraft 是内存大户:一旦模组社区成形,8 GB 就是起步线,它的官方服务器页面有所暗示,每个整合包也都印证了这一点。Rust 需要内存和磁盘 I/O 来支撑存档与区块卸载循环——16 GB 加 NVMe,这里每个套餐都将其作为标配而非加购。
Tick 运算让主频的论证变得具体。Minecraft 的目标是 20 TPS,即每个 tick 预算 50 ms 处理所有事情:实体 AI、红石、区块 tick、插件处理。一个慢核心在重型 tick 上耗了 60 ms,其余七个空闲核心救不了它,因为这个循环是串行的,预算是按 tick 计而非按秒计。这就是为什么对 tick 敏感的服务器,快主频上的 2 vCPU 套餐能胜过慢主频上的 8 vCPU 套餐,也是为什么利用率图表会误导只看表面数字的人。
典型的错误是按 vCPU 数量选购,之后再调错变量——tick 已经开始滞后时还往里加玩家,或者装性能优化整合包来补偿慢核心,结果 CPU 占用再次升高。第二个错误是只信突发频率而不看持续表现:5.7 GHz 是单核睿频,满载服务器下的全核持续表现是另一回事。先问清楚 tick 预算是多少,再按预算选购主频,让核心数随之而来。
主频、内存和 I/O 对号入座后,剩下的就是每款游戏的算术题。下一节用真实数字为 Minecraft、CS2 和 Rust 定规格,并说明套餐阶梯应该在哪里分档。
VPS $4.80* 起(年付期限),存储 1–5 TB NVMe 年付折合 $24/月起,带 IPMI 的独立服务器 $39.20/月起。加密货币账单,免 KYC。
立即启动按游戏定规格,用数字说话
一张规格表套不进三个引擎,因为它们的瓶颈资源各不相同,所以诚实的做法是脑中装三张小表。反直觉的结论是:40 人原版 Minecraft 服务器的正确套餐,对 20 人的模组服可能是错的;午餐时段手感完美的 CS2 服务器,到黄金时段可能纯粹因为 tick 压力而劣化。按工作负载的最坏时段定规格,而不是平均值,因为玩家社区玩的就是最坏时段。
Minecraft:一旦模组社区成形,8 GB 是起步线——Prime 搭载 8 GB DDR5 和 160 GB NVMe,是现实中的最低门槛,Titan 的 32 GB 应付重量级整合包。当整合包列表开始膨胀时,按列表价 $12/月——年付折合 $9.60/月——订购 Prime;那些能把中档配置吃干的整合包,则升级到 Titan,列表价 $24,年付折合 $19.20。原版类服务器用更低档位完全够用;模组服不会长期停留在原版状态。
CS2:同样受限于 tick 帧率,所以选型问题是主频质量——3.25-3.8 GHz 的 EPYC 9354P 能撑起一个繁忙的社区服,裸金属服务器表现更佳。Rust:内存和磁盘 I/O 主导,16 GB 加 NVMe 是工作底线,区块卸载和存档循环会成阵性地猛敲磁盘。带宽是三者共同的隐形变量:入门套餐 1 Gbps 不限流量,Prime 为 2.5 Gbps,Titan 为 10 Gbps——一大波新玩家同时进服加载区块的时刻,就是端口规格见真章的时刻。
破坏选型的是那些玩家数量公式,「每 GB 十人」之类的说法,它们无视模组、视距、实体数量,也分不清挂机玩家和 200 实体的红石农场。第二个失败是按开服首日定规格:社区会增长,整合包会累积,宣传片时期的套餐到第四个月就装不下了。把内存、tick 预算和目标人数写下来;每次更换整合包后重新审视;凭 tick 数据而非感觉或玩家抱怨来调整档位。
规格选对了,机器还得扛得住公网 IP 招来的关注。攻击是「何时」的问题,不是「是否」的问题,下一节把这个问题拆成两层——平台负责的一层,和你自己负责的一层。
公网 IP 被打是迟早的事,不是会不会的事
公开的游戏服务器确实会被打——被竞争对手、被全网扫描的机器人、还有把免费压力测试服务当娱乐的用户。有用的问题不是「会不会被打」,而是攻击落在哪一层,因为这两层归属不同:体积型洪水分给平台,应用层滥用归你自己管。为前者做预算、为后者写脚本,就是社区服务器所需的全部防御姿态,成本不超过一个晚上的配置。
体积型 L3/L4 防护内置于平台每一档,无需开关、无需加钱——这正是 DDoS 防护应该属于平台本身、绝不作为按 IP 加价商品的原因。按 IP 计费的防护产品必须先把你的流量导流过来才能过滤,徒增延迟和一个单点依赖;平台级防护天生就在链路上。过去能把业余服务器打下线的洪流——数十 Gbps 规模的 UDP 放大攻击和 SYN 风暴——都被这一层吸收,你的玩家连一帧都察觉不到。
应用层滥用恰恰因为看起来像玩家才能穿过体积型过滤器:刷投票冲垮排行、刷屏聊天淹没管理、反复进出占满名额、RCON 爆破敲打管理端口。这属于插件的地盘——你所用引擎的管理和限速插件才是真正的过滤器,所以应对滥用的预案必须写进你的运维手册:清楚哪个插件能封堵哪类洪流,是「一个晚上解决」和「折腾一周」的区别。
经典错误集中在端口上。把 RCON 端口 25575 对全网敞开等于邀请密码爆破;为了让服务器列表正常显示,查询端口和游戏端口一起公开是必要的,但在旁边再暴露一个面板端口就是纯粹的攻击面。第二个错误是以为平台过滤器也能拦住看似合法连接的 L7 洪流——那需要你自己的限速,而最高档独立服务器为希望平台多承担这层负载的运营者额外提供 L3/L7 清洗。
端口收好、层次理清之后,剩下的决策是机器放在哪里。机房选址跟随玩家,物理规律比价格更不容商量,下一节用真实的毫秒数来说明。
机器放在玩家所在的地方,而不是便宜的地方
对游戏服务器而言,延迟就是产品本身:一面便宜但让每次挥刀多出 80 ms 的旗帜,比任何宕机都能更快赶走社区,因为玩家拿你和旁边标签页里的服务器作比较。被网页托管训练成「优化每 GB 单价」的买家恰恰把顺序弄反了。选址问题首先是玩家地理分布,其次才是价格——而决定延迟的物理规律不可配置、不可调优,任何档位也买不到。
算术很诚实:光在光纤中的传播速度约为 200,000 km/s,所以在任何路由、对等互联和排队加税之前,100 km 大约就是 1 ms 往返。东京服务日韩,新加坡服务东南亚,香港服务大湾区,法兰克福服务欧洲——这些不是营销话术,而是对等互联点的所在:东京的 JPIX 和 JPNAP、新加坡的 SGIX、香港的 HKIX、法兰克福和阿姆斯特丹的 AMS-IX 与 DE-CIX。位置总表列出了每个节点的档位、上行带宽、对等互联和适用法律。
延迟预算框定其他一切:一个 tick 能容忍 30 ms 抖动,但它容忍不了一条根本不存在的光纤路径。12 个位置同一 SKU 价格改变了增长叙事:社区超出本地区域后,通过重新部署迁移——新机器、复制世界、切换 DNS——而不是重新谈判。客户端预测和插值可以掩盖抖动,但掩盖不了 200 ms 的真实物理距离,这就是为什么东京机器上的欧洲玩家不管 tick 多好都会橡皮筋。
经典错误是只看标价或追逐「选管辖区」的潮流,而社区明明在别处——东南亚社区用欧洲机器,玩起来每一秒都能感觉到。第二个错误是忘了迁移路径:用 rsync -a 复制世界、遵守存档边界、用较短的记录生存时间切换 DNS,迁移就平淡无奇;缺了这些,搬家就变成一周的分裂社区争论哪台才是「真」服务器。
旗帜选好、规格定好之后,新机器上的第一个小时决定了你的公网地址会招来多少滥用。端口方案是下一步,也是你所能配置的最便宜的缓解措施。
第一小时的封锁:端口方案
你所能运行的最便宜的 DDoS 缓解就是默认拒绝的防火墙,因为到达游戏服务器公网地址的流量大多根本不是攻击——而是扫描器,而扫描器若一无所获,对你毫无成本。你不公开的每个端口,就是没人能洪流、探测或爆破的端口;你不上公网的每个面板,就是永远不会收集登录尝试的登录表单。下面这份五分钟清单毫不炫技,却能比任何付费插件阻止更多事故。
只公开游戏需要的端口:UDP 游戏端口和查询端口。Minecraft 在 25565 应答,启用查询时用同一端口;CS2 的游戏和查询流量都用 27015;RCON 的 25575 应只绑定回环或 VPN 接口。面板和 SSH 不上公网清单——通过 51820 上的 WireGuard 访问,参考官方快速上手——其余一切用 nftables 默认拒绝:ufw default deny incoming 是同一思想的两个字版本。
更新整合包前先做快照。快照作为结算附加项提供,更新前的快照能在几分钟内回滚损坏的整合包,而不是重装一遍——把它变成每次更新前的例行仪式,而不是第一次出事后的补救。这与本指南后面的异地备份循环相辅相成:快照快速应对坏更新,备份缓慢而彻底地应对灾难。职责不同,都要排期,一旦社区依赖这个世界,两者都不可省略。
反复出现的翻车:RCON 绑定 0.0.0.0 还配弱密码,只因为配置默认如此;为图方便公开的网页面板成了真正的攻击面;还有被遗忘的测试服——一个旧整合包的测试实例仍在默认端口上监听,跑着带已知漏洞的插件组。用 ss -tulpen 清点监听项,关掉玩家叫不出名字的端口,并把仍然开放的端口和原因写下来,让这份清单是一个决策,而不是一场意外。
攻击面收窄之后,持续的问题是机器在负载下的真实表现。答案是 tick,而不是 CPU 图表,下一节用数字来论证。
盯住 tick,而不是 CPU 百分比
等到游戏服务器的 CPU 图表看起来吓人时,社区已经难受好几天了——tick 劣化在前,利用率滞后在后。一台 CPU 占用 40% 但 tick 帧率持续劣化的服务器,对它的玩家来说早已超售,因为 tick 循环是串行的,它的超时在任何图表变红之前就以橡皮筋的形式显现。因此监控的问题是:最差的那个 tick 花了多久,而不是旁观者眼中这台机器有多忙。
Minecraft 把预算写得很明白:20 TPS 意味着每个 tick 50 ms 处理一切——实体 AI、区块 tick、插件处理——而且服务器会在控制台里自报滞后。CS2 的 sub-tick 模型在更高频率上收紧了同样的逻辑。直接盯 tick 耗时和 TPS,看分位数不看平均值:p95 tick 才是战斗中途把玩家踢下线的那个。按 top 的手册,它显示的是平均值;而 tick 受限的服务器恰恰不会死于平均值。
凭 tick 证据升档。当 p95 tick 耗时连续一周超出预算,就按列表价 $49/月——年付折合 $39.20/月——租下 Forge,在一个维护窗口内把世界目录 rsync 过去;它的 16 核 9950X 在 4.3-5.7 GHz,是另一个级别的 tick 余量。端口也很重要:入门套餐 1 Gbps 不限流量,Prime 为 2.5,VPS 阶梯顶端为 10——不限流量意味着爆发流量除了交换机本身之外不产生任何成本。
等 CPU 到 100% 是经典错误——在 tick 受限的服务器上它永远不会到,因为循环阻塞在自己身上,其他核心闲着。用平均 CPU 代替 tick 分位数是第二个;把 swap 当作内存余量来数是第三个,活在 swap 里的服务器无论仪表盘说什么,都已经在 tick 竞赛中落败。每周按这个顺序盯三样东西:tick、tick 的 p95、进服高峰时的上行链路。
tick 盯住了、档位升得诚实,最后一项运维职责就是世界本身:每秒都在变化的存档,稍有大意就容易损坏。下一节的备份循环会像对待它们本来的身份那样对待它——一个数据库。
世界存档就是状态本身,像对待数据库一样对待它
游戏世界的变化频率超过大多数生产数据库,备份频率却更低,因为它「只是个游戏」——直到 400 小时的社区建设随一份损坏的存档灰飞烟灭。世界目录是机器上最纯粹的状态:它不可再生,没有脚本能重建它,两次存档之间的差值就是玩家们的整个夜晚。一个损坏的 region 文件不是一次宕机事故,而是一场考古工程。用你对待订单表的纪律来对待它。
崩溃一致性是头号敌人:在存写中途复制运行中的世界,会产生 torn region 文件——可能加载、可能加载一半、也可能在下一次启动时毒化整个地图。Minecraft 给了你杠杆:save-off、save-all、执行复制、save-on——用几秒钟暂停写入换取一套一致的文件。把这个窗口排进备份任务,而不是凌晨四点盲目打包目录、赌引擎恰好那晚不在写入。
完整状态比主世界更宽:下界和末地维度、含物品栏和坐标的 playerdata,还有插件的数据存储——权限和经济数据库维护着各自的文件或 schema,而恰恰是它们在缺失时最先被玩家察觉。异地备份这条腿遵循备份指南中的 3-2-1 模式:定时执行 borg create 或 restic backup 到第二台机器,源端加密,保留策略分层。快照覆盖更新前回滚;异地副本覆盖一切更糟的情况。
反复出现的错误:只备份主世界文件夹,下界和 playerdata 留在原地;用文件数量而不是启动一份临时世界副本来验证恢复;以及想当然地以为插件数据库在世界目录里,实际它住在独立的 schema 里。一次丢失玩家物品栏的世界恢复,即便地形完好也是客服灾难——备份整套数据、按季度用启动验证,就像对待任何一份你靠它吃饭的数据库。
端口、tick 和存档共同构成社区服务器的完整运维节律。最后一节把所有步骤串成今晚就能在一台机器上照做的开服顺序,无需临场发挥。
游戏服务器开服清单,按执行顺序
开服顺序的存在是为了让任何一步都不依赖未完成的前置。第一,按地理选址:选社区所在的旗帜——东京服务日韩、新加坡服务东南亚、香港服务大湾区、法兰克福服务欧洲——并从玩家视角核实往返延迟,真实距离大约每 100 km 对应 1 ms。第二,按游戏定规格,用上面的数字:Minecraft 模组底线 8 GB 在中档套餐,CS2 用你能买到的最好主频,Rust 用 16 GB 配 NVMe。
第三,下单并开机:套餐、期限、位置,以及你的引擎偏好的操作系统——如果你在意身份和支付那一侧,免 KYC 结算指南有完整说明。第四,在公开任何东西之前先上锁:ufw default deny incoming,只开游戏和查询端口,RCON 和 SSH 藏进 WireGuard,再用 ss -tulpen 清点监听项,证明清单没有撒谎。第五,做基线快照——结算附加项给你的正是之后每次整合包更新前的例行仪式。
第六,安装并压测:把引擎跑起来,装上整合包,在模拟的一个夜晚里盯 tick——控制台的 TPS 报告才是诚实的那个,看 p95 不看平均。第七,接通备份循环:save-off、save-all、复制、save-on 按每日排期,用 Borg 或 Restic 异地传到第二台机器,保留策略分层,再做一次真正启动临时世界副本的恢复测试,而不是数文件。
第八,在第一次被攻击之前写好应对滥用的预案:哪个插件屏蔽聊天洪流、哪个插件限制投票频率、RCON 密码放在哪、当晚形势失控时通知谁。平台的 L3/L4 防护吸收体积型部分;预案处理看起来像玩家的部分。第九,安排定期复查:tick 趋势每周看,恢复测试每季度做,整合包更新前必做快照——三条日历提醒让整套系统保持平淡无奇。
按这个顺序执行,开服就不依赖任何人的记性:选址和规格白纸黑字,攻击面已经收窄,tick 有了基线,世界在两处有副本,社区的第一个糟糕夜晚只是一条运维手册条目,而不是一场危机。这就是「承载一个社区的服务器」和「仅仅在端口上监听的服务器」之间的全部区别。
允许运行游戏服务器吗?
允许——游戏进程是列明的工作负载,且每一档都内置 DDoS 防护,无需开关、无需加钱。标准的可接受使用政策(AUP)条款依然适用:禁止钓鱼、垃圾邮件,禁止从本机发起攻击流量。运营好你的社区、管好端口方案,体积型威胁由平台承担。
一台 VPS 能容纳多少玩家?
小型社区:中档套餐每个可容纳数十人,取决于游戏和模组。真正的限制是 tick 稳定性和带宽,两者在你的监控里都看得见——盯住 p95 tick 耗时和进服高峰时的上行链路,凭证据而非玩家数量口诀来升降档。
我能拿到 root 权限来改服吗?
可以——每台 VPS 都有完整 root,自定义 JVM、面板软件和插件都由你决定。这也意味着加固由你负责:仅密钥登录 SSH、默认拒绝防火墙、RCON 不上公网接口,是本指南第一小时的基线,而不是平台替你完成的选项。
自带的 DDoS 防护能挡住一切吗?
不能——体积型 L3/L4 洪流由平台吸收,但模仿真实玩家的应用层洪流需要你引擎的限速和管理插件。最高档独立服务器额外提供 L3/L7 清洗,供希望平台多承担应用层负载的运营者选用。
游戏世界用快照还是备份?
两者都要,职责不同:每次整合包更新前的一份快照,能在几分钟内回滚一次失败的部署;而异地 Borg 或 Restic 副本应对服务商丢失和勒索软件。恢复测试按季度排期,通过启动临时世界副本来验证,而不是数文件。