¿Cómo hacer que scp vaya más rápido?

¿Cómo hacer que scp vaya más rápido?

Utilizo el siguiente comando para transferir archivos a través de mi red doméstica (cuando tengo que transferir muchos archivos, normalmente los archivo con la tarutilidad):

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

Se necesitan unos 25 minutos para enviar 500 Mb de datos a otra computadora. La velocidad media es de unos 600 KB/s. Creo que debe haber una manera de hacer que el proceso sea más rápido porque no creo que pueda sacar cómodamente un archivo de 1 Gb de la Web en menos de 10 minutos, pero no puedo obtener uno de 500 Mb. archivo enviado a través de la red en menos de ese tiempo.

Respuesta1

Dos ideas:

  1. Experimente con un cifrado diferente
  2. Utilice compresión 'sobre la marcha'

1. Experimente con un cifrado diferente:

Una idea es probar los distintos cifrados que están disponibles scpe intentar determinar cuál es el más rápido para usted. (La idea detrás de esto es que es el cifrado de sus datos lo que consume tiempo). Encuentre los cifrados disponibles ejecutando lo siguiente:

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

Esto muestra los cifrados disponibles en una instalación predeterminada de Xenial Xerus y se pueden agregar usando la sintaxis que ya sugirió:

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

Esta opción se pasa directamente para sshprobar sshlos cifrados disponibles. Con suerte, podrás encontrar un cifrado que te permitirá aumentar tu velocidad de transferencia. Cuando hayas encontrado este cifrado, podrás colocarlo en ~/.ssh/configlugar de escribirlo cada vez...

2. Utilice compresión 'sobre la marcha':

scpes capaz de comprimir sus transferencias "sobre la marcha", lo que significa que las compresiones solo se utilizan durante la transferencia y no se verán ni en el extremo host ni en el remoto. Agregue esto usando la -Copción:

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

Aquí hay un ejemplo en mi propio sistema:

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

El nivel de compresión es el mismo que el utilizado gzipy si realmente desea experimentar, puede usar la opción 'CompressionLevel' que varía de 1 a 9, siendo 1 la compresión más rápida, 9 la más lenta con la mejor compresión y 6 la compresión más rápida. por defecto. Esto se puede configurar ~/.ssh/configde la siguiente manera:

Host *
Compression yes
CompressionLevel 9

Tenga en cuenta que esto establece una compresión alta paratodo scp / sshtransferencias, se puede configurar para hosts individuales si lo desea...

Utilice la -vopción para investigar los efectos de cualquier cambio que realice. Con la experimentación notarás que diferentes datos tendrán diferentes relaciones de compresión.

información relacionada