有一个ubuntu 10.04服务器,如果我从这个服务器所在办公室以外的任何服务器ssh一个文件(意味着任何使用scp-ing到这个服务器通过局域网从这个服务器总是工作的某些原因),然后scp-ing对于任何大小超过2112 kB的文件都会失败,并且卡在2112 kB。 所以
scp -vvv /home/attila-szeremi/aszeremi.tar.gz attila@server.hu:~/aszeremi.tar.gz
在结尾处动态显示类似1% 2112KB 909.2KB/s - stalled -
的内容,其中KB / s变得越来越低。
有谁知道可能导致这种情况的原因以及如何解决这个问题?
到目前为止我尝试过:
答案 0 :(得分:34)
我设法摆脱这个问题的唯一方法是disabling TCP SACK:
$ sudo sysctl -w net.ipv4.tcp_sack=0
答案 1 :(得分:31)
我好像找到了解决办法。我不得不将LAN卡的mtu设置设置为1492:
# ifconfig eth0 mtu 1492
答案 2 :(得分:11)
在较新的Linux系统上, ifconfig 命令可能已被 ip
取代设置mtu的命令变为:
# ip link set dev eth0 mtu 1492
答案 3 :(得分:2)
我坚持使用 Mac OS X 并且 @ dav.garcia的答案为我做了一些小改动:
$ sudo sysctl -w net.inet.tcp.sack=0
答案 4 :(得分:0)
我看到了同样的问题。上述建议都不适合我,但他们让我走上了正确的道路。我在MTU设置为1300的防火墙后面。将我的局域网卡的MTU设置为非常低(576,有点随机)导致我的数据包停止被丢弃。
$ sudo ifconfig eno1 mtu 576
我必须在每个Linux客户端上执行此操作。出于某种原因,同一子网上的Windows机器没有问题。