我的VPS搭配Steam下载实战:从龟速到满速的蜕变

记得刚工作那年,我攒了台新电脑,兴冲冲装好Steam,点下《荒野大镖客2》的下载按钮,结果速度稳定在800KB/s,预计时间72小时。那种感觉就像烧开水等半天还不开,急得想摔键盘。后来折腾了几天,我终于找到个笨办法——用一台海外VPS做中转,把下载速度直接拉满到50MB/s。今天就把这套我自己实测过的流程完整写下来。

为什么普通下载会这么慢

Steam的下载速度不只取决于你家宽带上限。实际上Steam会根据你的IP自动分配CDN节点,很多时候分到的节点离你很远或者线路拥堵。我当初在北京联通100M宽带下,下载《赛博朋克2077》时速度只有2MB/s,而同一个小区的朋友用移动宽带却能跑满。后来我研究了一下,发现通过VPS中转可以强制走最优线路,甚至能利用VPS所在机房的本地缓存。

挑选一台合用的VPS

不是所有VPS都适合干这活。我踩过一次坑,买了某家廉价VPS,带宽标称1Gbps,但实际跑Steam下载时被邻居挤得只剩50Mbps。后来换了家不限流量的独立带宽产品,才算稳定。你需要重点关注三个参数:

  • 带宽大小:至少1Gbps共享或独享,最好是CN2 GIA这类直连线路
  • 硬盘空间:Steam游戏动辄几十GB,建议VPS硬盘至少100GB,或者挂载外部对象存储
  • 流量配额:下载一个3A大作可能消耗上百GB,找不限流量或买大流量包更划算

我的具体搭建步骤

第一步:配置VPS环境

我选了Ubuntu 20.04,因为它对SteamCMD支持最好。先更新系统并安装依赖:
sudo apt update && sudo apt upgrade
sudo apt install steamcmd screen

然后创建一个专门用来下载的steam用户,避免污染系统环境。

第二步:登录并设置下载任务

用screen开一个后台会话,然后运行steamcmd。第一次登录会让你输入账号密码,为了安全我用了Steam令牌的临时码。登录后我通常先把下载缓存位置改到一个有足够空间的分区:
force_install_dir /mnt/steam_downloads
然后开始下载:
app_update 271590 validate
这里数字是对应的游戏AppID,比如GTA V是271590。等待过程中可以用Ctrl+A+D让screen在后台运行,自己睡觉去。

我的VPS搭配Steam下载实战:从龟速到满速的蜕变

第三步:把游戏搬回本地

Steam游戏在VPS上下好了,怎么传到本地电脑?我最开始用scp,但中途断连就得重来。后来改用rsync,支持断点续传:
rsync -avzP --partial username@vps_ip:/mnt/steam_downloads/ /本地目录/
如果游戏太大,也可以直接在VPS上打包成tar.gz再下载,但注意打包时间。

第四步:在本地验证与导入

游戏文件传回来后,在Steam客户端里选择“添加非Steam游戏”或者直接复制到Steam的游戏库目录。然后点安装,Steam会自动检测已有文件,验证完整性后就能直接玩,不用重新下载。

实际效果对比

我用这套方法下载《使命召唤:战区》,原来在本地需要46小时,换成日本VPS后只用了3小时,因为机房带宽跑满了500Mbps。不过要注意,VPS的磁盘IO不能太差,有一次我用了廉价SSD,下载过程中因写入瓶颈反而比本地还慢。

路上遇到的坑

首先是Steam账号安全。尽量不要在VPS上长期保持登录,下载完就退出。我专门为下载申请了一个小号,买游戏用大号,通过家庭共享方式下载,这样就算泄露也只损失小号。其次是VPS的流量费,如果每月超过1TB,账单会非常可观。我后来换成计费方式更灵活的按量付费,下载完毕就销毁实例。

另一个问题是Steam对登录地点敏感的机制。如果同一账号短时间内从多个IP登录,可能会触发验证。我通常每次下载前用screen新开会话,下载完就杀掉进程,再退出账号。

现在的习惯

如今我已经很少用这种方法了,因为本地宽带升级到了千兆,大多数时候直连就够了。但对于那些夜里挂着下载的大体积DLC,或者某些被ISP限速的冷门游戏,我依然会开一台临时VPS,把下载任务甩给它,自己清清爽爽去睡觉。说到底,这方法解决的不是技术难题,而是那种看着进度条一寸寸挪动却无能为力的焦虑。