Wie kann man SCP schneller machen?

Wie kann man SCP schneller machen?

Ich verwende den folgenden Befehl, um Dateien über mein Heimnetzwerk zu übertragen (wenn ich viele Dateien übertragen muss, archiviere ich sie normalerweise mit dem tarDienstprogramm):

scp -c blowfish [FILE] [USER]@[ADDRESS]:[PATH]

Es dauert etwa 25 Minuten, um 500 MB Daten an einen anderen Computer zu senden. Die durchschnittliche Geschwindigkeit liegt bei etwa 600 KB/s. Ich denke, es muss unbedingt eine Möglichkeit geben, den Vorgang zu beschleunigen, denn ich glaube nicht, dass ich in der Lage bin, eine 1 GB große Datei bequem in weniger als 10 Minuten aus dem Internet herunterzuladen, aber ich kann keine 500 MB große Datei in weniger Zeit über das Netzwerk senden.

Antwort1

Zwei Ideen:

  1. Experimentieren Sie mit einer anderen Chiffre
  2. Verwenden Sie die On-the-Fly-Komprimierung

1. Experimentieren Sie mit einer anderen Chiffre:

Eine Idee besteht darin, die verschiedenen verfügbaren Chiffren zu testen scpund herauszufinden, welche für Sie die schnellste ist. (Die Idee dahinter ist, dass die Verschlüsselung Ihrer Daten die meiste Zeit in Anspruch nimmt.) Finden Sie die verfügbaren Chiffren, indem Sie Folgendes ausführen:

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:~$ 

Dies zeigt die verfügbaren Chiffren einer Standardinstallation von Xenial Xerus und kann mit der von Ihnen bereits vorgeschlagenen Syntax hinzugefügt werden:

scp -c <cipher> [FILE] [USER]@[ADDRESS]:[PATH]

Diese Option wird direkt an weitergegeben und sshtestet sich somit sshselbst auf die verfügbaren Chiffren. Hoffentlich finden Sie eine Chiffre, die Ihre Übertragungsgeschwindigkeit erhöht. Wenn Sie diese Chiffre gefunden haben, können Sie sie einfügen, ~/.ssh/configanstatt sie jedes Mal einzugeben ...

2. Verwenden Sie die „On-the-Fly“-Komprimierung:

scpkann Ihre Übertragungen „on the fly“ komprimieren, was bedeutet, dass die Komprimierung nur während der Übertragung verwendet wird und weder auf dem Host- noch auf dem Remote-Ende sichtbar ist. Fügen Sie dies mit der -COption hinzu:

scp -c <cipher> -C [FILE] [USER]@[ADDRESS]:[PATH]

Hier ist ein Beispiel auf meinem eigenen System:

debug1: compress outgoing: raw data 365865, compressed 150118, factor 0.41
debug1: compress incoming: raw data 150118, compressed 365865, factor 2.44

Die Komprimierungsstufe ist die gleiche wie die, die für verwendet wurde . Wenn Sie wirklich experimentieren möchten, können Sie die Option „CompressionLevel“ verwenden, die von 1 bis 9 variiert, wobei 1 die schnellste Komprimierung, 9 die langsamste mit der besten Komprimierung und 6 die Standardeinstellung ist. Dies kann wie folgt gzipeingestellt werden :~/.ssh/config

Host *
Compression yes
CompressionLevel 9

Beachten Sie, dass hierdurch eine hohe Komprimierung füralle scp / sshÜbertragungen, es kann auf Wunsch für einzelne Hosts eingestellt werden ...

Nutzen Sie diese -vOption, um die Auswirkungen der von Ihnen vorgenommenen Änderungen zu untersuchen. Beim Experimentieren werden Sie feststellen, dass unterschiedliche Daten unterschiedliche Komprimierungsraten aufweisen.

verwandte Informationen