2012-08-16 6 views
39

Istnieje pewien serwer Ubuntu 10.04, gdzie jeśli ssh plik do niego z dowolnego serwera, który jest poza biurem, gdzie ten serwer jest (co oznacza jakiekolwiek wykorzystanie przechodzenie na ten serwer przez LAN z tego serwera zawsze działa z jakiegoś powodu), a następnie kończy się niepowodzeniem dla dowolnego pliku o rozmiarze większym niż 2112 kB i utknie na poziomie 2112 kB. Więcwysyłanie dużego pliku z SCP do określonego serwera straganów dokładnie na 2112 kB

scp -vvv /home/attila-szeremi/aszeremi.tar.gz [email protected]:~/aszeremi.tar.gz 

pokazuje coś podobnego 1% 2112KB 909.2KB/s - stalled - dynamicznie na końcu, gdzie KB/s staje się coraz niżej.

Czy ktoś wie, co może być przyczyną tego i jak mogę to naprawić?

Co próbowałem dotąd:

  • Ograniczenie prędkości z SCP -l 2000. To właśnie sprawiło, że przesyłanie plików wolniej, a na 2112 kB zrobiło ponownie zatrzymany.
  • Włączanie compresison przez -C. Wciąż był utknięty w tym samym rozmiarze.
+0

Sprawdź, czy miejsce docelowe ma wolne miejsce dla całego pliku. – Thor

+0

Ten sam problem. Żadna z [odpowiedzi] (http://linuxsecure.blogspot.com.es/2008/05/scp-stalled-through-firewall-ssh-no.html) nie pomogła mi. Przełączyłem się na 'rsync' i problem zniknął. Nie rozwiązanie, ale przyzwoite obejście w moim przypadku. –

Odpowiedz

30

Wygląda na to, że znalazłem poprawkę. Musiałem ustawić ustawienie MTU karta sieciowa do 1492 przez:

# ifconfig eth0 mtu 1492 
+0

Dziękujemy! Rozwiązuje to problem z przeciągnięciem SCP, który miałem z kopiowaniem plików do maszyny wirtualnej CentOS 6.4. Transfery zatrzymałyby się na tym samym 2112 KB punkcie. – davidjb

+0

Oto rok 2014, uruchomiony najnowszy system Debian, świeża instalacja i to nadal jest problem na moim komputerze? Dzięki za poprawkę. Każdy pomysł, dlaczego nie jest 1492 z pudełka? – sleeves

34

Jedynym sposobem udało mi się pozbyć tego problemu było przez disabling TCP SACK:

$ sudo sysctl -w net.ipv4.tcp_sack=0 
+1

Praca nad Ubuntu 12.04, dziękuję! – iRonin

+2

Działa również na Ubuntu 14.04. Zmiana MTU lub ograniczenie prędkości nie pomogło.Po wyłączeniu SACK mogłem bez żadnych problemów powrócić do nieograniczonej prędkości. To powinna być odpowiedź. –

+0

pojawia się błąd: nieznany oid 'net.ipv4.tcp_sack = 0' na mac – Shaegorath

11

W nowszych systemach Linux ifconfig polecenie może być zastąpiony przez ip

polecenie, aby ustawić MTU staje:

# ip link set dev eth0 mtu 1492 
2

utknąłem z tym samym na Mac OS X i @ dav.garcia za odpowiedź zrobił to dla mnie z małą zmianą:

$ sudo sysctl -w net.inet.tcp.sack=0 
0

widziałem ten sam problem. Żadna z powyższych sugestii nie sprawdziła się, ale postawili mnie na właściwej drodze. Byłem za firewallem z ustawionym MTU na 1300. Ustawienie MTU mojej karty LAN na naprawdę niską (576, nieco losową) spowodowało, że moje pakiety przestały być upuszczane.

$ sudo ifconfig eno1 mtu 576 

musiałem to zrobić na każdym z moich klientów Linux. Z jakiegoś powodu maszyna Windows w tej samej podsieci nie miała problemu.

Powiązane problemy