Oct 06, 2025

如何在linux服务器下载百度云盘资源

国内的资源分享总是喜欢挂百度云盘,不过度盘没有提供linux版本的客户端。所以研究了两种在linux服务器上下载度盘资源的方法。

linux服务器可以一直挂着下载,虽然限速但多下载几天总能下载完,~~才不是因为不想冲度盘会员~~。

bypy 下载

原理:bypy 是基于 Python 的命令行工具,通过百度网盘开放 API 实现对网盘文件的管理。它先通过 OAuth2.0 获取访问令牌,然后通过 HTTP 请求调用 API 完成文件的上传、下载、列目录和同步操作。所有操作默认作用于 /apps/bypy/ 目录,并可结合本地目录实现双向同步,同时支持与下载工具配合优化性能,实现自动化管理。

方法:懒得写了,网上教程一大堆,安装好直接bypy syncdown --resume-download完事。

直链+aria2下载

原理:在百度网盘中,用户下载文件时,并不是直接访问文件本身,而是通过网盘的后台接口获取一个临时的下载资源。第三方插件(如一些油猴脚本)利用这一机制,通过解析分享页面中的隐藏数据或调用网盘内部 API,提取出官方界面无法直接显示的真实下载链接。获取这些链接后,可以配合多线程下载工具实现更高效的下载或批量下载。

方法

直链提取有很多油猴脚本可以实现。这个实现逻辑不复杂,随便挑一个就行。

Aria2是一个支持众多协议的命令行下载器。可以直接用指令在本地运行下载,也可以监听端口、接收RPC请求,像服务器一样工作。因为我是在内网服务器上部署,所以按照服务器的形式部署,并搭配AriaNg前端。这样所有内网设备都可以向Aria2发送下载任务。

Aria2直接配置文件,然后运行在后台就好。当然也可以写一个service配置,方便开机启动。具体见附录。

AriaNg是一个纯前端实现的配置工具,可以在内网搭一个或者直接使用外网别人搭好的网站。因为是纯前端,配置信息保存在LocalStorage,所以也不用担心信息安全(当然,原生AriaNg没问题不代表第三方用户建站不会做手脚,所以还是自己搭安心)。

第一次打开AriaNg需要设置好下载服务器的ip、端口、路径和认证口令。之后再打开会直接从LocalStorage读取配置信息,很方便。

总结

两种方法相比,第一种比较官方,但没有好用的前端,只能在命令行敲指令或写定时脚本,不够优雅。第二种不够官方(也许有风险?)但前端很便捷。速度上两者差不多,毕竟瓶颈在度盘那边。

附录

后台执行指令

aria2c --conf-path=/home/userA/aria2/aria2.conf -D

配置文件/home/userA/aria2/aria2.conf

# ---------- 基础设置 ----------
continue=true
dir=/home/userA/aria2/downloads 
file-allocation=none

# ---------- 连接优化 ----------
max-connection-per-server=4 
min-split-size=5M           
split=16                  
disable-ipv6=true  # 可选
# ---------- 日志 ----------
log-level=notice # 可选日志详细程度:debug, info, notice, warn 或 error.
log=/home/userA/aria2/aria2.log
# ---------- RPC 服务 ----------
enable-rpc=true
rpc-allow-origin-all=true # 为响应http头添加 Access-Control-Allow-Origin:*
                          # 避免因 CORS 被浏览器拦截(非浏览器客户端不受影响)。
rpc-listen-port=6868 # 可选监听端口
rpc-listen-all=true # 监听所有ip
rpc-secret=xxxxxxx # 认证口令,为了安全推荐设一个
                   # 因为aria2不支持限制访问ip源

service配置文件

[Unit]  
Description=Aria2c download manager  
After=network.target

[Service]  
Type=simple  
User=user  
Group=luser  
ExecStart=/usr/bin/aria2c --conf-path=/home/userA/aria2/aria2.conf  
Restart=on-failure

[Install]  
WantedBy=multi-user.target