我家里的宽带是千兆,平时下载 Steam 游戏能跑到 80MB/s 以上,但一到网盘场景就瞬间回到十年前——2GB 的项目压缩包,非会员下载速度稳定在 100KB/s 上下,偶尔飘到 300KB/s 都算惊喜。后来我把 LinkSwift 配合油猴脚本这一整套链路跑通之后,同样的文件直接从 100KB/s 拉到了 50MB/s 以上,基本贴着带宽上限跑。这篇文章就是把这套“网盘不限速方案”从原理到实操一步步拆开讲清楚,适合经常下大文件、需要备份分发资源、或者在团队里做资料流转的朋友。
LinkSwift 加上油猴脚本这两个词,很多人单独听过,但没把它们拼在一起用过。先说结论:这套方案的本质不是“破解网盘”,而是绕过网盘客户端的限速策略,把下载任务转移到真正支持多线程并发的下载器上。整个过程不涉及任何敏感工具,你只需要一个浏览器扩展、一个用户脚本管理器、一个开源下载器,外加几个配置步骤。
1. 网盘为什么限速,以及“不限速”到底是怎么实现的
要想理解这套方案,得先搞清楚网盘下载为什么慢。网盘服务商给普通用户的带宽资源是有限的,为了控制成本,他们会在多个层面限制下载速度:服务端限制单个客户端连接的速度,客户端本身也做了限速逻辑,非付费用户还会被分配到更低的调度优先级。这些策略叠加下来,你看到的 100KB/s,并不是网络不行,而是服务端和客户端联手“故意”压着速度。
传统浏览器下载是单连接下载,网盘网页版给到的也是临时生成的加密链接,限速生效得非常容易。要做突破,常见思路有三个方向:
- 多线程分块下载:把一个文件切成多个区间段,同时建立多个连接下载不同部分的字节,最终合并成完整文件。下载器(如 Aria2、Motrix、IDM)都支持这种方式,单连接限速 100KB/s,开 16 线程就能到 1.6MB/s,开 64 线程就能接近宽带上限。
- 获取真实直链:网盘页面里的下载按钮,背后其实是一个有有效期、有 IP 绑定的临时链接。如果能提取到这个直链,就可以丢给任何下载器去下载,而不必依赖限速严重的官方客户端。
- 接管下载行为:浏览器默认下载器既不能多线程,也没法断点续传,我们需要把下载行为“无缝”转移到外部下载器上,LinkSwift 在链路里承担的就是这个角色。
这套组合拳打下来,核心逻辑就变成了:油猴脚本负责在网盘页面里自动解析出真实直链,LinkSwift 负责嗅探/接管下载动作,Aria2 或 Motrix 这类下载器负责多线程高速下载。三者各管一段,互不干扰。
这里要特别说明一下“直链”和“普通链接”的关系。网盘页面上那个下载按钮,你复制出来的通常是一串很长的带参数地址,里面有签名、时间戳、IP 限制参数。油猴脚本做的事情,就是把这些参数按照网盘的接口协议重新请求一次,换取一个更干净的、适合下载器使用的直链。整个过程都是调用的网盘官方接口,只是把网页端隐藏的逻辑显式化。
2. LinkSwift 到底是个什么工具:定位、安装与核心配置
2.1 先搞清楚 LinkSwift 在想什么
LinkSwift 是一个浏览器侧的下载辅助扩展,核心功能是接管页面里的下载链接并转发给外部下载器。它有点像大家熟知的 IDM 集成扩展,但更轻量,也更适合同国际化下载器配合使用。我用的 LinkSwift 版本面向 Chrome/Edge 内核浏览器,装好之后会在页面右下角或工具栏出现一个悬浮按钮,实时显示嗅探到的链接。
它能做的事,大致有这几类:
- 链接嗅探:自动分析当前页面里的各种元素,识别出视频、压缩包、文档等文件链接,即使页面没有显式给出下载按钮,只要资源在页面的网络请求里出现过,就能被捕获。
- 下载接管:当页面上触发了下载动作时,LinkSwift 会拦截浏览器的默认下载,询问你要不要交给外部下载器处理。
- URL 转发与 RPC 对接:把最终链接通过 Aria2 JSON-RPC 接口推送到本地下载器,并自动带上你预设的请求头(UA、Referer、Cookie),这是很多下载器单独做不到的。
有人会问:既然有油猴脚本能解析直链,为什么还需要 LinkSwift?答案是两者处理环节不同。油猴脚本运行在页面 DOM 环境里,负责“解析和生成链接”;LinkSwift 运行在浏览器扩展层,负责“接收和转发下载任务”。少掉任何一环,链路都通不起来。
2.2 安装前的准备清单
在动手装 LinkSwift 之前,先把环境准备好,别等到配置到一半才发现缺东西:
| 项目 | 要求 | 说明 |
|---|---|---|
| 浏览器 | Chrome 90+ / Edge 90+ / Firefox 能装 Tampermonkey 的版本 | LinkSwift 主要适配 Chromium 内核,Firefox 也能用但行为略有差异 |
| 下载器 | Aria2 / Motrix / XDown 任一 | 建议直接用 Motrix,因为它内置了 Aria2 并带图形界面,对新手友好 |
| 脚本管理器 | Tampermonkey 或 Violentmonkey | 用来承载油猴脚本,下文第三节详细讲 |
| 可用的网盘账号 | 你自己有权限下载的文件账号 | 确保有权限,别拿别人私有文件做实验 |
我自己用的是 Motrix,因为它的 RPC 监听端口默认就是 16800,Token 也是固定生成的,跟 LinkSwift 对接时几乎不需要额外设置。
2.3 安装与初始配置步骤
第一步,去扩展商店搜索 LinkSwift 安装。如果商店里搜不到官方版本,去项目 GitHub Releases 页面下载 zip,在浏览器扩展管理页打开“开发者模式”,选择“加载已解压的扩展程序”。这里有个小坑:GitHub 上有些分支版本是社区维护的,安装前看一下最近更新时间,超过一年没更新的基本可以放弃。
安装完成后,进入扩展的“设置”页面,重点配置两个地方:
一个是下载器对接参数。选择 Aria2 RPC 模式,填写 RPC 地址和 Token。以 Motrix 为例,它的默认地址是http://127.0.0.1:16800/jsonrpc,Token 可以在 Motrix 的“偏好设置 - 进阶设置 - Aria2 密钥”里直接复制。LinkSwift 会通过这个 RPC 接口把任务推给 Aria2。
另一个是请求头模板。很多网盘的直链对 Referer 和 UA 非常敏感,如果下载器发出的请求头不对,服务端会直接返回 403。LinkSwift 支持给不同站点配置不同的请求头模板,比如对某个网盘域名强制携带Referer: https://pan.xxx.com/和固定的 User-Agent。配置方式是:
# LinkSwift 请求头模板示例,加到扩展配置的 Headers Override 里 Referer: {网盘域名} User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36保存之后,整个工具基座就算搭好了。这时候随便在一个有文件下载的页面试一下,浏览器再点下载按钮时,LinkSwift 应该会弹出接管提示,点“发送到下载器”就能看到 Motrix 开始跑任务。注意,这一步跑通之前,先别急着去找什么网盘脚本,否则后面出了问题很难判断是哪一环的锅。
2.4 LinkSwift 和其他下载辅助工具怎么选
很多人电脑上其实已经装了别的工具,这里给一份对比,方便你判断要不要换:
| 工具 | 接管方式 | 多线程 | RPC 对接 | 适用场景 |
|---|---|---|---|---|
| LinkSwift | 扩展嗅探+接管 | 依赖外部下载器 | 支持 Aria2 RPC | 网盘直链提取后的高速下载 |
| Tampermonkey 脚本直连 | 页面内跳转 | 不支持 | 不支持 | 小文件下载,速度提升有限 |
| IDM | 独立软件+扩展 | 支持 | 不开放 RPC | 通用网络资源下载,偏重网页视频音频 |
| XDown | 独立软件 | 支持 | 支持 Aria2 | 需要多协议下载的场合 |
| Motrix | 独立软件 | 支持 | 原生 Aria2 | 作为 LinkSwift 的后端下载器 |
不夸张地说,LinkSwift 在“配合油猴脚本实现网盘满速下载”这件事上的价值,不是因为它能下载,而是因为它把“脚本生成的直链”和“下载器的并发能力”中间那条最后一公里的路修通了。没有它,你拿到直链还得手动复制粘贴到 Motrix 里,有了它,一步到位。
3. 油猴脚本在整套方案里扮演的角色
3.1 油猴脚本到底是什么
“油猴脚本”严格说并不是一个工具,而是运行在 Tampermonkey 或 Violentmonkey 这类用户脚本管理器里的一段 JavaScript 代码。它能在特定网页加载后自动执行,修改页面结构、发起额外网络请求、弹窗提示,甚至下载文件。因为运行在浏览器提供的高度授权环境里,它能做到普通网页 JS 做不到的事情,比如跨域请求、保存数据、本地通知等。
在网盘加速这个场景里,油猴脚本通常负责这样几件事:
- 在网盘文件页面自动识别文件列表,解析每个文件背后的真实下载接口。
- 把解析结果以“下载”按钮或“复制直链”按钮的形式插到页面里。
- 点击按钮后,将直链直接推给本地 RPC 服务(也就是 LinkSwift 对接的 Aria2),跳过浏览器下载。
- 有些进阶脚本还会自动拼接多个分片 URL,实现更细粒度的并发控制。
3.2 一个最小可用脚本的核心结构
如果你对代码不敏感,直接去脚本市场装别人写好的就行。但为了避免出问题后两眼一抹黑,我建议至少看懂脚本的元信息和关键 API。
元信息块长这样:
// ==UserScript== // @name 网盘直链提取助手 // @namespace https://your-namespace.example // @version 1.2.0 // @description 自动解析网盘下载直链,并推送到本地 Aria2 下载器 // @match https://pan.example.com/* // @grant GM_xmlhttpRequest // @grant GM_download // @connect pan.example.com // @connect 127.0.0.1 // @run-at document-end // ==/UserScript==这里面最关键的是@connect和@grant。@connect声明了脚本可以跨域请求哪些主机名,本地下载器的127.0.0.1必须写进去,否则脚本无法把直链推给 Aria2。@grant则声明了需要使用哪些油猴增强 API,GM_xmlhttpRequest用来发跨域请求,GM_download用来触发下载。
脚本主体逻辑一般分三步:
- 监听页面里的下载按钮点击事件,或者主动扫描文件列表,获得文件 ID 和文件名。
- 用
GM_xmlhttpRequest请求网盘的解析接口,带上 Cookie 和其他参数,换取直链(JSON 返回)。 - 拿到直链后,调用
GM_xmlhttpRequest向http://127.0.0.1:16800/jsonrpc发一个 Aria2 RPC 请求,参数包含method: aria2.addUri,把下载任务挂到 Motrix 上。
最终的效果是:你在网页里点一下“高速下载”,Motrix 里立刻新增任务,并开始多线程拉取。
3.3 脚本该去哪装,以及怎么判断脚本是否靠谱
装脚本的渠道,最常见的是 GreasyFork(油猴中文网/脚本集散地)。搜索关键词可以用“网盘 直链”或“网盘 aria2”。但我说句实话,脚本市场的代码质量参差不齐,有些已经被网盘接口变动搞失效了,有些甚至夹带了广告、挖矿代码。判断脚本是否靠谱,建议看三个指标:
- 安装量和更新时间:安装量过千、最近一个月内有更新的,基本是维护状态良好的脚本。
- GitHub 开源托管:脚本详情页如果带有项目主页链接,能去 GitHub 看源码/issue,优先级高于匿名发布的脚本。
- token 权限声明:如果脚本声明了奇怪的
@connect域名(比如外部广告域名),或者请求了GM_setValue后向不知名 API 发送你的页面数据,直接弃用。
另外,重要提醒:装好脚本后,第一次使用时别急着点所有文件,先拿个小文件(几 MB 的 doc/pdf)试跑,确认日志输出和下载器接管都正常,再跑大文件。
4. 从零到满速:完整实操链路
4.1 第一步:装好三件套
三件套指的是:Tampermonkey 扩展、LinkSwift 扩展、Motrix 下载器。安装顺序无所谓,反正最后都要用到。装好后,浏览器右上角应该能看到 Tampermonkey 和 LinkSwift 的图标,Motrix 则需要在系统托盘/菜单栏常驻运行。
建议先启动 Motrix 并确认 RPC 服务已开启。Motrix 默认开启,但有些安装版会被安全软件拦截,检查方法是直接访问http://127.0.0.1:16800/jsonrpc,浏览器访问会返回一段 JSON 错误信息(因为没有 POST 数据),这反而说明服务存活。
4.2 第二步:把 LinkSwift 指向 Motrix
在 LinkSwift 设置里找到下载器配置:
- 下载器类型选择:Aria2
- RPC 地址:
http://127.0.0.1:16800/jsonrpc - RPC Token:从 Motrix 的偏好设置里复制,一长串随机字符
- 加密方式:Motrix 一般用 none,如果开了 TLS 就用 tls
保存后,LinkSwift 图标上会显示一个绿色状态提示“已连接到 Aria2”,这表示链路打通了一半。
4.3 第三步:安装并启用网盘用户脚本
去 GreasyFork 搜索适配目标网盘的脚本,安装后 Tampermonkey 图标上会出现一个红色角标。打开网盘文件页面,正常情况下脚本会在页面上插入一个额外的按钮或面板,比如“直链复制”“发送到 Aria2”。如果没有看到,按 F12 打开控制台,看有没有红色报错,多半是页面结构变动导致脚本功能没挂载上。
这里有几种情况需要区分:有的脚本只支持列目录页,不支持分享页;有的脚本需要在文件下载页面点选文件后才会显示按钮;还有的脚本第一次用会让你手动扫码或登录授权。这些提示一般会在页面顶部或 console 里打印出来,按提示操作即可。
4.4 第四步:实测下载并调优
选一个几百 MB 的文件,点脚本生成的“高速下载”按钮,然后立刻切到 Motrix 观察任务状态。正常情况下,任务会显示下载中,并且速度会分阶段上涨:启动 2-3 秒后从几百 KB/s 爬到几 MB/s,再过几秒稳定下来。
如果速度只有 1-2MB/s 就到顶了,先别急着怪网盘,优先查这几个参数:
- 线程数:Motrix 的默认最大连接数是 16,有些网盘 / 直链服务器支持更高的并发,可以改成 32 或 64。改法在“偏好设置 - 进阶设置 - 最大连接数”。不是说 64 就一定更快,但值得试。
- 是否走代理:如果 Motrix 设置了系统代理或代理插件,下载直链时可能绕路,反而拖慢速度。确认代理设置为“直连”或“不适用下载服务器”。
- DHT 网络:BitTorrent 场景才需要 DHT,普通 HTTP 下载关不关无所谓,但如果下载器开了 WebRTC,可能影响连接效率,可以关掉。
调优之后重新下载同一个文件,速度通常会有明显改善。我自己实测的感受是:16 线程下有一个网盘大概能到 8MB/s,改成 32 线程后直接翻到 17MB/s,再高就触及服务器带宽上限了。
4.5 速度上不去的检查表
如果你按上面的步骤走了还是慢,逐项排查:
| 检查项 | 判断方法 | 常见原因 |
|---|---|---|
| 下载器 RPC 是否在线 | LinkSwift 图标状态 | Motrix 被关了或端口被占用 |
| 线程数是否够 | Motrix 任务属性看并发 | 默认 16 对部分大文件不够 |
| 请求头带没带 Cookie | 下载任务右键复制链接看 curl | Cookie 过期,重新在网盘登录即可 |
| 直链是否失败 | Motrix 任务报错 403/410 | 直链有效期过了,回页面重新解析 |
| 网络带宽是否饱和 | 同时测一个全速 HTTP 资源 | 本地网络本身有限速 |
| 服务端限速 | 切换网盘其他文件测试 | 该网盘对全部直链都限速,换存储方案 |
5. 踩坑记录:从脚本失效到任务失败,完整排查链路
5.1 场景一:脚本突然不弹按钮了
有一天打开网盘页面,发现脚本插入的按钮消失了,刷新也没用。这基本可以断定:网盘页面结构或者接口变了。网盘产品为了反自动化,经常调整页面 DOM 和接口参数,脚本不会立刻跟上。
排查链路:
- 打开浏览器控制台,看有没有红色的 JS 报错,比如
Cannot read properties of undefined,说明脚本在期望某个 DOM 节点时没找到,崩了。 - 打开 Tampermonkey 的脚本状态页,确认脚本被启用了,且“已匹配页面”里确实匹配当前 URL。
- 去 GreasyFork 该脚本的讨论区,看最近有没有人反馈同样问题,以及有没有新版本。
- 如果脚本长时间没更新,就找功能相近的替代脚本。
这一步最耗时间的是调试脚本和页面之间的兼容问题。如果你只是使用者,不打算自己改代码,最务实的做法就是用站内搜索找到维护频率最高的脚本,而不是自己硬扛。
5.2 场景二:脚本按钮能出来,但点了没反应
这种情况大概是脚本解析接口时没有拿到直链,常见原因有两个:
- Cookie 没传对。部分脚本依赖你登录网盘后的 Cookie,如果你的登录态过期,解析接口会返回未授权。解决方法是重新刷新网盘页面,确认账号还是登录状态,再重新解析。
- 跨域请求被拦截。脚本
@connect里没有包含网盘接口域名,或者没有包含127.0.0.1,导致 GM_xmlhttpRequest 请求被浏览器拒绝。检查脚本头部@connect列表,把缺失的域名加上。
排除方式:在控制台手动执行一次解析函数(如果你看得懂日志),看脚本打出的file_id或url是什么。正常情况下,日志会打出一个以 http 开头的直链;如果打印的是 error 对象或空串,问题就在请求环节。
5.3 场景三:任务已经推给 Motrix,但一直报 403
这是直链下载里最常见的问题。直链虽然能解析出来,但服务端会校验请求来源,最常见的限制就是 Referer 和 User-Agent。之前说过,在 LinkSwift 的请求头配置里给网盘域名加对应的 Referer 和 UA,能解决 80% 的 403。
如果加了还不行,看 Motrix 的任务日志里具体返回码:
- 403:防盗链拒绝。检查请求头。
- 401:认证失败。直链绑定了 IP 或 Cookie,尝试重新解析。
- 416:请求的字节范围超出文件大小。通常是下载器带着错误的 Range 发请求,清掉任务重新解析即可。
- 404:直链路径已失效。回网盘页面重新点解析按钮。
5.4 场景四:速度还是低,但下载器没有报错
这种“软故障”最磨人。任务在下载器里正常跑,速度就是上不去。我的排查顺序是:
- 先用浏览器自带下载从小文件试一下,看原始网页下载速度是不是本身就很低。
- 再换一个不同网盘的直链试试,判断是服务端限速还是下载器配置问题。
- 最后调大线程数、更换 UA 重新下载。
有一次我遇到一个网盘,所有线程加起来只能跑 2MB/s,我当时以为是 LinkSwift 配置问题,后来测试同一个直链用 curl 单连接也只能跑 1.5MB/s,才明白是服务端对直链的带宽分配就是这么多,不是客户端能突破的。这种情况下,合理的选择是压缩包分包(比如用 7z 分卷,单卷不超过 1GB),减少单文件体积,或者换用更支持高速分发的存储方案。
6. 合规边界:哪些能做,哪些最好别碰
6.1 做这套方案时,时刻记住“权限”二字
LinkSwift + 油猴脚本提供的,是一种“技术能力”。能力本身是中性的,用在哪里决定了它的性质。我平时用这套方案,只针对两类文件:一是自己上传到网盘、需要备份下来的文件;二是别人明确公开分享、允许下载的文件。这两类文件,我用多线程下载器去拉速度,没有任何问题。
但如果你在考虑用它去下载没有授权的资源,那就得冷静思考。类似于:借助脚本去批量拉取他人私有文件、绕过付费机制获取付费文件,都是越界行为。轻则账号被封,重则面临法律风险。我不建议任何人把这类方案当成“免费会员替代品”来用。
另外,网盘服务的条款里通常写明了“不得以非官方客户端获取资源”。严格来说,使用脚本提取直链下载,在灰色地带。所以我的建议是:只做小范围、自己账号、合法授权的下载,不要拿它去做下载站、批量搬运、商业分发。这样既保护自己,也不给脚本作者和工具开发者惹麻烦。
6.2 如果需要长期高速分发,直接换思路
如果你经常要分享几 GB 的安装包或素材给团队,与其每次都在网盘限速里挣扎,不如直接换用为分发而生的方案:
- 对象存储 + CDN:把压缩包传到存储桶,开启公读,拿到直链给大家下载,带宽不够就加 CDN 加速,这才是真正的“满速”。
- 内网穿透 + 自建 HTTP 目录:适合小团队,自己机器上用 nginx 开个目录,配好带宽限制,下载速度完全可控。
- 基于 P2P 的分享方案:比如用魔法分发类工具,通过多节点互相加速,分享的人越多,下载越快。
- 压缩分包 + 多盘并行:如果一定得用网盘,那就用 7-Zip 分卷,拆成 500MB 一个的小包,多个网盘同时下载,再把分卷合并。这个办法土,但稳定。
我这套 LinkSwift + 油猴脚本的方案,本质上是在“现有网盘限制”前提下最大程度榨干速度的务实做法。但它不是银弹。真到了商用或者大规模分发场景,时间成本比工具成本贵多了,花钱买个正经的 CDN 直链反而是最划算的路。
最后再分享一个我自己总结的小技巧:每次升级浏览器版本后,如果发现 LinkSwift 或者油猴脚本行为异常,第一反应不是重装,而是去看这两个扩展的更新日志和 GitHub issue。浏览器从 Chrome 120 升到 124 之后,扩展权限机制有过一次大调整,不少旧版脚本/扩展的@connect和跨域逻辑会失效,直接弃用旧版换成新版本通常就能解决。工具链这种东西,只有保持版本同步,才能长期稳定地用下去。