← 返回文章列表

本地伺服器低速傳輸解決方案

定位本地伺服器檔案傳輸緩慢的問題,並記錄可行的改善方法。

前言:絕望的 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資料夾名稱可能是中文,注意識別)。

關於這篇文章的日期

保留舊站原始文章標註的日期;實際開始寫作的時間可能更早。

原始日期: 2025-12-11 17:55:14 +0800