Dlaczego scp zostaje zablokowany? Jak to rozwiązać?

52

Kiedy próbowałem skopiować plik (o rozmiarze) przez sieć za pomocą scp, pojawia się błąd <file> stalled Dlaczego tak się dzieje? Jak to rozwiązać?

Lelouch Lamperouge
źródło
Lubię za to rclone ; Nigdy nie miałem z tym żadnych problemów.
Hatszepsut
Anulowałem i ponownie uruchomiłem polecenie scp, a problem zniknął dla mnie
kilodżuli

Odpowiedzi:

72

Dzieje się tak, ponieważ scppróbuje zdobyć jak największą przepustowość, a każde opóźnienie (przez zaporę ogniową itp.) Może ją zatrzymać. Ograniczenie przepustowości (z opcją -l) to naprawi.

Na przykład możesz chcieć ograniczyć przepustowość do 1 MB / s (= 8192 Kbits / s):

 scp -l 8192 <file> <destination>

Źródło: http://www.aixmind.com/?p=1371 - Wayback Machine

muru
źródło
Dziękuję za odpowiedź i link do źródła. Ale myślę, że twoje źródło mówi, że -l 8192oznacza to 8192 Kbit / sekundę, a -lmoże działać do 1 Mbit / sekundę (co wydaje się obecnie nieco przestarzałe).
elmicha
2
@elmicha 8192Kb == 1 MB
Lelouch Lamperouge
@Eknath Ups, masz rację.
elmicha
2
Dla wyjaśnienia: przykład ogranicza przepustowość scp do 8192 Kbit / sekundę. Autor artykułu źródłowego sugeruje, że ta liczba powinna dobrze działać dla połączeń do 1 Mbit / sekundę.
Erwin Wessels
1
Działa jak urok :)
Saurabh
5

Udało mi się to rozwiązać za pomocą rsync:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt [email protected]:/tmp/
użytkownik1453912
źródło
2

Czy jest jakaś szansa, że ​​jesteś za firewallem Cisco ASA? Jeśli tak, wyłącz „losowość numerów sekwencji”, a to bardzo pomoże - wyłącz także TCP Offload (ethtool -K $ INTERFACE tso off gso off gro off), jeśli korzystasz z Cisco ASA z Broadcom NIC na swoim serwerze .

dotwaffle
źródło
To geniusz. Czy ta zmiana jest trwała, czy muszę gdzieś umieścić polecenie? Żeby było jasne, musisz ustawić to w swojej karcie sieciowej, a nie w interfejsie cscotun.
mjaggard
1

Biorąc pod uwagę komunikat o błędzie, który otrzymaliśmy, gdy scp utknął w miejscu, podejrzewałem, że szyfrowanie się nie powiodło. „Nie można ustalić autentyczności hosta„ mój serwer (10.10.11.12) ”. Odcisk klucza ECDSA to SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo. Mając to na uwadze, uruchomiłem„ scp -c aes128-ctr /tmp/test.dan/big. src myserver: / tmp / bigfile ". scp zakończyło się sukcesem z alternatywnym szyfrem. Czy występuje problem z domyślnym szyfrem wysadzającym przestrzeń bufora?

Spróbuj dodać „-c” z alternatywnym szyfrem i sprawdź, czy to rozwiązuje twoje przeciągnięcie.

Dan Snavely
źródło