
ホーム ネットワーク経由でファイルを転送するには、次のコマンドを使用します (大量のファイルを転送する必要がある場合は、通常、ユーティリティを使用してファイルをアーカイブしますtar
)。
scp -c blowfish [FILE] [USER]@[ADDRESS]:[PATH]
500 MB のデータを別のコンピュータに送信するのに約 25 分かかります。平均速度は約 600 KB/秒です。プロセスを高速化する方法があるに違いないと思います。1 GB のファイルを Web から 10 分以内に楽に取得できるとは思えませんが、500 MB のファイルをそれより短い時間でネットワーク経由で送信することはできないからです。
答え1
2つのアイデア:
- 別の暗号を試してみる
- オンザフライ圧縮を使用する
1. 別の暗号を試します。
1 つのアイデアは、利用可能なさまざまな暗号をテストしてscp
、どれが最も高速であるかを判断することです。(この背後にある考え方は、データの暗号化に時間がかかっているということです。) 次のコマンドを実行して、利用可能な暗号を見つけます。
andrew@athens:~$ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
[email protected]
andrew@athens:~$
これは、デフォルトの Xenial Xerus インストールで使用可能な暗号を示しており、すでに提案されている構文を使用して追加できます。
scp -c <cipher> [FILE] [USER]@[ADDRESS]:[PATH]
このオプションは に直接渡されるため、使用可能な暗号ssh
をテストしますssh
。転送速度の向上を可能にする暗号が見つかるといいですね。この暗号を見つけたら、~/.ssh/config
毎回入力するのではなく、それを配置できます...
2. オンザフライ圧縮を使用する:
scp
転送を「オンザフライ」で圧縮できます。つまり、圧縮は転送中にのみ使用され、ホスト側またはリモート側では表示されません。この-C
オプションを使用してこれを追加します。
scp -c <cipher> -C [FILE] [USER]@[ADDRESS]:[PATH]
以下は私のシステムでの例です:
debug1: compress outgoing: raw data 365865, compressed 150118, factor 0.41
debug1: compress incoming: raw data 150118, compressed 365865, factor 2.44
圧縮レベルは で使用されているものと同じですが、実際に実験したい場合は、1 ~ 9 の範囲で変化する「CompressionLevel」オプションを使用できます。1 は最も高速な圧縮、9 は最も低速で最良の圧縮、6 はデフォルトです。これは次のようにgzip
設定できます。~/.ssh/config
Host *
Compression yes
CompressionLevel 9
これは高圧縮を設定することに注意してください全て scp / ssh
転送の場合、必要に応じて個々のホストに設定できます...
この-v
オプションを使用して、行った変更の効果を調べます。実験により、データによって圧縮率が異なることがわかります。