There is a certain ubuntu 10.04 server where if I ssh a file onto it from any server that is outside the office where this server is (meaning any of use scp-ing onto this server through LAN from within this server always works for some reason), then scp-ing fails for any file over 2112 kB in size, and is stuck at 2112 kB.
So
scp -vvv /home/attila-szeremi/aszeremi.tar.gz attila@server.hu:~/aszeremi.tar.gz
shows something like 1% 2112KB 909.2KB/s - stalled -
dynamically at the end, where the KB/s becomes lower and lower.
Does anyone know what may be causing this and how I can fix it?
What I have tried so far:
- Limiting the speed with scp -l 2000. It just made the file sending slower, and at 2112 kB it got stuck again.
- Enabling compresison with -C. It was still stalled at the same size.
The only way I managed to get rid of this problem was by disabling TCP SACK:
$ sudo sysctl -w net.ipv4.tcp_sack=0
I seemed to have found the fix. I had to set the LAN card's mtu setting to 1492 by:
# ifconfig eth0 mtu 1492
On newer Linux systems the ifconfig command may have been replaced by ip
The command to set the mtu becomes:
# ip link set dev eth0 mtu 1492
I got stuck with the same on a Mac OS X and @dav.garcia's answer did it for me with a small change:
$ sudo sysctl -w net.inet.tcp.sack=0
I was seeing this same problem. None of the above suggestions worked for me, but they got me on the right path. I was behind a firewall with the MTU setting set to 1300. Setting my LAN card's MTU to really low (576, somewhat random) caused my packets to stop being dropped.
$ sudo ifconfig eno1 mtu 576
I had to do this on each of my Linux clients. For some reason, the windows machine on the same subnet didn't have a problem.