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. おまけ
結局はこのアダプタを買うのが一番のライフハックです。