买了 1TB 硬盘的 VPS,df -h 一看可用还剩 100G。下两部 4K 电影就剩一半,跑个网盘同步再塞点种子,主板都爱吃紧。更别说还有一批 VPS 流量按量计费,从服务器拉大文件出来,每 GB 都要钱。
大多数人第一反应是"换大硬盘的机器",其实还有个更便宜的路子——把云网盘挂载成 VPS 的一块"虚拟硬盘"。这就是这篇要讲的:用 rclone 把 Google Drive、OneDrive、阿里云盘这些网盘 mount 到 VPS 上,当作扩容磁盘用;国内盘(115、天翼云)走 AList 聚合再挂载。好处是不加钱、只要网络通就有"无限空间",坏处是速度、延迟和稳定性都取决于网盘和 API,不是所有场景都适合。
先判断你的情况适不适合,再看具体怎么配。
挂网盘不是万金油,先对号入座:
| 你的场景 | 适合挂网盘吗 | 原因 |
|---|---|---|
| 下载机(BT/网盘转存),下了再本地删 | ✅ 很适合 | 纯顺序写,网盘完全扛得住 |
| 放电影、电视剧、音乐库,偶尔播放 | ✅ 很适合 | 顺序读 + 缓存,体验接近本地 |
| 网站附件、用户上传的图 | ⚠️ 看情况 | 文件小且多时 API 请求数很致命 |
| 数据库、应用数据 | ❌ 绝不要 | 随机 IO + 强一致性要求,VFS 扛不住 |
| 当真正"第二个磁盘"装软件 | ❌ 别 | 依赖网盘在线,网盘一抽风全完 |
判断标准就一句话:你的用法是不是以"顺序读写大文件"为主,且能接受偶尔的网络延迟。 是,就划算;不是,就别折腾,直接看 VPS 什么是该放云盘、什么该放对象存储 那篇。
rclone 是挂载工具,真正存数据的是后面的云服务。性价比和稳定性差别很大:
| 方案 | 容量/价格 | 速度 | 稳定性 | 适合谁 |
|---|---|---|---|---|
| Google Drive 个人版 | 15G 免费,200G 约 $30/年 | 好,但 R 站高峰会限 | 中 | 小文件、个人备份 |
| Google Drive 企业版(Workspace) | 无限(政策收紧中) | 好 | 中,滥用会被封 | 作为"网盘扩容"的经典选择 |
| OneDrive | 1T(订阅含) | 好 | 高 | Office 365 用户顺手 |
| 阿里云盘(rclone 官方 ali 后端) | 免费约 100G+ | 国内快 | 高 | 国内下载、国内机器 |
| Telegram(rclone 官方) | 免费,按账号配额 | 看网络 | 可以但另类 | 想白嫖空间、存小文件 |
| 115 / 天翼云等国内盘 | 大,常有活动 | 国内快 | 高 | 国内下载党 |
| AList 聚合(115/天翼云/夸克) | 取决于底层盘 | 取决于底层盘 | 由 AList 中转 | 不想受限于 rclone 官方后端 |
推荐组合:
- 人在国内、机器在国内 → 阿里云盘(官方后端直连)或 115(走 AList)
- 人在海外、机器在海外 → Google Drive 或 OneDrive
- Free 限制多、想先试试 → Telegram(rclone 官方后端的隐藏玩法)
rclone 官方脚本装最新版,国内服务器如果连不上脚本源就换成从 rclone.org 手动下载二进制:
# 官方一键脚本
curl https://rclone.org/install.sh | sudo bash
# 验证
rclone version
配置之前先想好挂载点,惯例是 /mnt/cloud:
sudo mkdir -p /mnt/cloud
rclone 的配置存叫 remote,配置好了才能挂载。交互式配置:
rclone config
交互界面里选 n(new remote),然后按提示:
- 协议选哪个:Google Drive 选
drive,OneDrive 选onedrive,阿里云盘选ali,Telegram 选telegram - client_id 要不要填:Google Drive 强烈建议自建(rclone 共享的 client_id 正在被收回,2026 年内停用),自建方法:Google API Console 开启 Drive API → 配置 OAuth 同意屏(External,加 drive、files.metadata.readonly 等 scope)→ 创建"桌面应用"类型客户端 → 把 Client ID / Secret 填进来
- 授权:会让你在浏览器打开 URL 授权,VPS 没浏览器就选"用远程设备授权"或者
rclone config提示的直接授权方式,把返回的授权码贴回来
配完测试能不能通:
rclone lsd mydrive: # mydrive 是刚才的 remote 名,列根目录
rclone size mydrive: # 看整个盘用量
真正"变成一块盘"用的是 mount 子命令:
rclone mount mydrive: /mnt/cloud \
--vfs-cache-mode full \
--buffer-size 64M \
--dir-cache-time 72h \
--poll-interval 15s \
--daemon
几个参数决定体验,逐个说清楚:
| 模式 | 行为 | 适合 |
|---|---|---|
off | 不缓存,直接读写网盘 | 只读场景,比如放视频库 |
writes | 写入先落本地 | 下种子、上传 |
full | 读和写都过本地缓存 | 大多数人的默认选择 |
full 模式下,读取时先下载到本地缓存再返回,播放 4K 视频、解压大文件这种体验最接近本地磁盘。缓存目录默认在 ~/.cache/rclone,要指定放哪加:
--cache-dir /mnt/cloud-cache
注意:缓存要放在真实磁盘上,而且越大越好,别把缓存也算进"扩容"里——你在扩容的是网盘的容量,不是本机的。
缓冲越大,一次性从网盘拉回的数据越多,顺序读写越快。内存够就 64M 起步,大文件场景 128M 也行。内存小的机器(1G)用 32M。
--dir-cache-time(默认 5m)决定目录列表缓多久,调高(比如 72h)能显著减少目录请求,但"刚在网盘里新增的文件要过一会才出现"。--poll-interval 是后台主动轮询发现变更的间隔,调低(10-15s)文件出现得更快,代价是请求量。
文件同步有延迟是挂载方案的默认代价,别指望它像 ext4 一样即时。
--daemon:后台运行(Ubuntu 上是--daemon;也有的版本推荐--syslog配 systemd,见下文)--max-read-ahead:调大可以提升远程文件顺序读速度--allow-other:让其他用户/进程也能访问挂载点,systemd 里用--umask 022:默认权限掩码
挂载完验证:
df -h | grep cloud # 能看到一个容量很大的挂载点
ls /mnt/cloud # 能列出网盘内容
手动挂的会在重启后消失。写成 systemd 服务一劳永逸:
# /etc/systemd/system/rclone-mount.service
[Unit]
Description=rclone mount cloud drive
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=root
ExecStart=/usr/bin/rclone mount mydrive: /mnt/cloud \
--vfs-cache-mode full \
--buffer-size 64M \
--dir-cache-time 72h \
--poll-interval 15s \
--allow-other
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now rclone-mount
sudo systemctl status rclone-mount
Restart=on-failure 保证网盘断线、rclone 崩了能自动拉起。配合网盘偶尔抽风,这个很有用。network-online.target 一定记得加,否则开机时网络还没起来,rclone 直接连不上网盘。
rclone 官方后端覆盖了 Google Drive、OneDrive、阿里云盘、Telegram、S3,但没有 115、夸克、天翼云。这些国内盘想挂载,标准做法是用 AList 把它们聚合起来,对外暴露一个 WebDAV,再用 rclone 挂 AList 的 WebDAV。
已经有 AList 的搭建教程,这里只说链路:
115 / 夸克 / 天翼云
│ 在 AList 后台添加存储
▼
AList(对外提供 WebDAV,默认 http://localhost:5244/dav,用户名密码是 AList 的)
│ rclone 以 webdav 协议连接
▼
rclone mount → /mnt/cloud ← 你的 VPS 看上去多了块盘
AList 里加 115 存储时,需要到 115 开放平台申请 App,把 app_key 填进去;夸克、天翼云同理各自要授权。这类授权经常因官方 API 政策变动而失效,维护成本比官方后端高,适合"这台机器就是要下国内盘的东西"这种明确需求。
rclone 配 WebDAV remote:
rclone config
# 协议选 webdav
# url 填 http://127.0.0.1:5244/dav
# vendor 选 other
# user/pass 填 AList 的账号密码
以挂 Google Drive 为例(一台 1 核 1G、20G 硬盘的便宜机器):
- 本机硬盘:20G,扩容前随便塞点就满
- 挂载 Google Drive 个人 200G 计划后:可用空间变成 220G,月成本还是网盘订阅那份
- 下载机场景:磁力、种子直接
aria2c -d /mnt/cloud/torrents下到网盘里,下完转存完就可以本地清了
对比单独加硬盘:很多便宜厂商的 VPS 根本不能加盘,能加的硬盘价格也远高于网盘订阅。挂网盘对"存储需求大、访问频率低"的东西,就是省钱。
① 限速和请求数。
所有网盘 API 都有配额。海量小文件(比如上万个小图片)会让目录列表、文件元数据请求暴涨,很快触发 429(请求过多),然后被临时限速甚至封 API。大文件反而是网盘的舒适区。
② 缓存盘会先写满你自己的 SSD。
--vfs-cache-mode full 下,一个大文件先完整落到本地缓存再慢慢传。写得越大,本地缓存盘吃掉越多。缓存目录千万留足空间,不然会反过来把系统盘塞爆——这种情况处理流程见 VPS 硬盘满了怎么办。
③ 不是真正的磁盘,别指望 POSIX 语义。
- 随机 IO 慢得离谱:数据库放上面基本必卡
rm -rf一个远程目录可能是逐个删除,几万个文件删到天荒地老- 并发写入同一个文件、软链、硬链这类行为不可靠
④ Google Drive 的"无限空间"是政策红线。
Workspace 教育版曾大量被拿来挂载扩容,Google 这几年在持续封号清理。自己的订阅空间怎么挂都行,指着无限空间白嫖的,风险自担。 因为这个问题翻车的人,最后都在看 VPS 对象存储:什么文件该放网盘,什么该放对象存储 和 MinIO 自托管对象存储。
⑤ Docker 容器要用挂载点,注意权限。
容器内挂载宿主机目录,加 --allow-other 并在 compose 里把 user 配对,否则容器里看得到目录但读不了。这是最常见的报错。
- 挂载点是真实需求(顺序读写大文件),不是一时兴起
- rclone 官方后端尽量优先(drive/onedrive/ali/telegram),国内冷门盘才走 AList
-
--vfs-cache-mode full+ 独立、充足的--cache-dir -
--buffer-size按内存大小调到 32M-128M - 目录列表缓存
--dir-cache-time调大,减少请求数 - systemd 服务加了
network-online.target和Restart=on-failure - 设备访问加
--allow-other,权限--umask想清楚 - 磁盘监控接着(挂载缓存反而可能撑爆本机盘,见流量和磁盘监控)
- 心里清楚"文件不是即时的",重要东西用 rclone 正经同步一遍(备份恢复演练)
最后泼盆冷水:挂载网盘是"把网盘当硬盘用",本质是在绕开存储成本。它不是唯一解:
- 要给网站/应用做对象存储 → 用 Cloudflare R2、S3,接口标准、CDN 免费,别用网盘
- 要跑数据库 → 老老实实放本地 SSD,然后配置备份
- 只是想在多台机器间同步文件 → 用 Syncthing 或专门的同步方案,别用共享挂载
挂载网盘的定位就是:一台便宜机器 + 大存储需求 + 能接受延迟的人性化扩容。想清楚这一点,它就是个很香的工具;没想清楚,它就是另一块等着写满的"假硬盘"。
- AList 搭建教程 — 115/夸克/天翼云聚合的唯一入口
- VPS 什么文件该放网盘,什么该放对象存储 — 先想清楚再动手
- VPS 硬盘满了怎么办 — 本机盘被缓存塞爆后的急救
- VPS 备份恢复演练 — 用 rclone 做正经备份而不是挂载
