← 返回文章列表

本地服务器低速传输解决方案

定位本地服务器文件传输缓慢的问题,并记录可行的改善方法。

SSH 传大文件速度只有几 KB?教你用百度网盘 + aria2 跑满服务器带宽(含加密方案)

前言:绝望的 50KB/s

最近在给一台远程 Linux 服务器部署项目,遇到在一个极其离谱的网络环境:

  1. 文件很大:代码加数据包足足有 6.7GB。
  2. 网络极差:本地 Mac 与服务器之间的 Ping 值高达 700ms+,且伴随严重丢包。
  3. 速度感人:尝试使用 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 服务器。我们需要安装两个工具:

  1. bypy:百度网盘的 Python 客户端。
  2. 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
  1. 终端会显示一个长链接。
  2. 复制这个链接,在本地浏览器打开。
  3. 登录百度账号,复制网页上显示的授权码。
  4. 回到服务器终端,粘贴授权码并回车。

显示容量信息即表示绑定成功。


第四步:开启多线程高速下载(核心!)

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文件夹名称可能是中文,注意识别)。

关于这篇文章的日期

保留旧站原始文章标注的日期;实际开始写作的时间可能更早。