本地服务器低速传输解决方案
SSH 传大文件速度只有几 KB?教你用百度网盘 + aria2 跑满服务器带宽(含加密方案)
前言:绝望的 50KB/s
最近在给一台远程 Linux 服务器部署项目,遇到在一个极其离谱的网络环境:
- 文件很大:代码加数据包足足有 6.7GB。
- 网络极差:本地 Mac 与服务器之间的 Ping 值高达 700ms+,且伴随严重丢包。
- 速度感人:尝试使用
scp或rsync直传,速度稳定在 40KB/s…… 传完预计需要 40 个小时,而且随时会断开。
但在排查过程中发现,服务器本身的下行带宽其实并不差(Speedtest 实测有 70Mbps),瓶颈在于“我与服务器之间”那条拥堵的链路,导致 TCP 协议的滑动窗口崩溃,速度上不去。
解决思路: 既然直连不行,那就找个“中转站”。利用百度网盘(配合 SVIP)作为高速桥梁,并在 Linux 服务器上通过命令行工具跑满带宽下载。
本文将介绍一套 bypy + aria2 多线程下载 的终极解决方案。
方案优势
速度快:利用百度网盘的 CDN 和服务器自身的带宽,避开点对点拥堵。但是要有百度网盘的会员才能享受高速下载。
稳定:aria2 支持多线程并发和断点续传,搞定大文件。
操作全流程
第一步:本地文件压缩上传
压缩: 先将项目文件夹压缩成 zip 包。可以在终端执行:
zip -r project.zip project_folder上传: 打开百度网盘客户端,将 project.zip 上传到网盘 /apps/bypy/ 目录下,方便后续操作。
第二步:服务器环境准备
登录你的远程 Linux 服务器。我们需要安装两个工具:
- bypy:百度网盘的 Python 客户端。
- aria2:多线程下载神器(关键!没有它大文件会卡死)。
如果你有 conda 环境(终端显示 (base)),安装非常简单:
# 1. 安装 bypy
pip install bypy
# 2. 安装 aria2
conda install -c conda-forge aria2
# 或者
apt-get install aria2 # 如果你有 root 权限验证安装: 输入 aria2c -v,如果能看到版本号说明安装成功。
第三步:绑定百度网盘账号
在服务器终端输入:
bypy info- 终端会显示一个长链接。
- 复制这个链接,在本地浏览器打开。
- 登录百度账号,复制网页上显示的授权码。
- 回到服务器终端,粘贴授权码并回车。
显示容量信息即表示绑定成功。
第四步:开启多线程高速下载(核心!)
bypy 默认使用的是 Python 单线程下载,遇到几个 G 的大文件经常会**“起步快,然后迅速掉速直到卡死(0%不动)”**。
必须挂载 aria2 进行多线程拉取。
请执行以下命令:
# --downloader aria2: 指定使用 aria2 下载器
# --processes 4: 开启 4 线程并发(跑满带宽)
# --timeout 600: 增加超时容忍度,防止网络波动中断
bypy --downloader aria2 --processes 4 --timeout 600 download project.enc效果对比:
- 普通下载:200KB/s -> 0KB/s (卡死)。
- Aria2 下载:
[#20a9c1 1.2GiB/6.2GiB(19%) CN:4 DL:5.2MiB]-> 5.2MB/s 稳定跑满!
第五步:解密与解压
下载完成后,你得到了 project.zip。现在用同样的密码把它变回 zip 包。
# 解压
unzip project.zip总结
当 SSH 链路质量极差时,不要死磕 SCP 或 Rsync。
“本地压缩 -> 网盘中转 -> Aria2 多线程拉取” 是一条虽然步骤稍多,但绝对可行、安全且高速的路径。特别是对于几个 G 的代码或模型权重文件,这是最节省时间的选择。
小贴士: 如果你的文件不在
/apps/bypy/目录下,记得在网盘网页端把文件移动进去,否则bypy可能找不到文件(apps文件夹名称可能是中文,注意识别)。