LANポートがない!Wi-Fi経由で80GBの動画ファイルを爆速(かつ安全)にSSH転送する


最近のノートPCは薄くて高性能ですが、困るのが「LANポートがない」こと。

動画って見なくても消すのは気が引けますよね。PCのディスクスペースでもを確保したくなったので、80GBもの動画ファイルをサーバーへ転送する必要があったのですが、メインマシンはWi-Fi接続のみ。1Gbpsの有線環境ならすぐ終わる作業も、無線が絡むと「途中で切れたらどうしよう」「いつまで経っても終わらない」という不安がつきまといます。

そこで今回は、「送信側はWi-Fi・受信側は有線」という条件下で、SSH(rsync)のポテンシャルを最大限に引き出し、大容量データを最も効率的に送り届ける方法をまとめました。

結論から言うと、暗号化方式の変更とrsyncの適切なオプション指定だけで、体感の転送速度と安定性は劇的に変わります。

1. 結論

geminiさんに聞きました。

rsync -avhP --inplace -e "ssh -c chacha20-poly1305@openssh.com -o Compression=no" [動画フォルダ]/ [ユーザー]@[受信側IP]:[宛先パス]

このコマンドは、以下のポイントを押さえています:

  • -avhP: アーカイブモードで詳細表示、進行状況も表示
  • --inplace: 途中で切れても再開可能なように、ファイルを直接上書き
  • -e "ssh -c chacha20-poly1305@openssh.com -o Compression=no": 転送の暗号化方式を高速なchacha20-poly1305に変更し、SSHの圧縮はオフにしてCPU負荷を減らす
  • [動画フォルダ]/: 転送したい動画ファイルが入ったフォルダ
  • [ユーザー]@[受信側IP]:[宛先パス]: 受信側のユーザー名、IPアドレス、そして保存先のパス

2. なぜこの方法が速いのか?

  • 暗号化方式の変更: デフォルトのAESよりもCPU負荷が低いchacha20-poly1305を指定することで、Wi-Fi環境でも転送速度が向上します。
  • SSHの圧縮オフ: 大容量ファイルの場合、SSHの圧縮は逆にCPU負荷を増やし、転送速度を落とすことがあります。特に動画ファイルはすでに圧縮されているため、圧縮の恩恵が少ないです。
  • rsyncのオプション: --inplaceを指定することで、転送が途中で切れても再開可能になり、安定性が向上します。

3. 結果

50MB/s弱の転送速度で、約30分で80GBの動画ファイルを無事にサーバーへ転送することができました。途中で切れることもなく、安定して転送が完了しました。

4. おまけ

結局はこのアダプタを買うのが一番のライフハックです。