Ubuntu 将带有SCP的大文件发送到某个服务器会暂停2112 kB的时间
有一个特定的ubuntu 10.04服务器,如果我将文件从该服务器所在办公室以外的任何服务器ssh到该服务器上(这意味着任何从该服务器内部通过LAN访问该服务器的方法都会因某种原因而起作用),那么大小超过2112kb的任何文件的scp都会失败,并被卡在2112kb上。 所以 最后动态显示类似于Ubuntu 将带有SCP的大文件发送到某个服务器会暂停2112 kB的时间,ubuntu,ssh,scp,Ubuntu,Ssh,Scp,有一个特定的ubuntu 10.04服务器,如果我将文件从该服务器所在办公室以外的任何服务器ssh到该服务器上(这意味着任何从该服务器内部通过LAN访问该服务器的方法都会因某种原因而起作用),那么大小超过2112kb的任何文件的scp都会失败,并被卡在2112kb上。 所以 最后动态显示类似于1%2112KB/s 909.2KB/s-暂停-,其中KB/s变得越来越低 有人知道这可能是什么原因吗?我如何修复它 到目前为止,我所尝试的: 使用scp-L2000限制速度。它只是使文件发送速度变慢,在
1%2112KB/s 909.2KB/s-暂停-
,其中KB/s变得越来越低
有人知道这可能是什么原因吗?我如何修复它
到目前为止,我所尝试的:
- 使用scp-L2000限制速度。它只是使文件发送速度变慢,在2112kb时又卡住了
- 启用压缩与-C。它仍然在相同的大小暂停
- 我似乎找到了解决办法。我必须通过以下方式将LAN卡的mtu设置设置为1492:
# ifconfig eth0 mtu 1492
我解决这个问题的唯一方法是:
在较新的Linux系统上,ifconfig命令可能已被ip 设置mtu的命令变为:
# ip link set dev eth0 mtu 1492
我在Mac OS X和dav上遇到了同样的问题。加西亚的回答给了我一个小小的改变:
$ sudo sysctl -w net.inet.tcp.sack=0
我也看到了同样的问题。上述建议对我都不管用,但它们让我走上了正确的道路。我在MTU设置为1300的防火墙后面。将我的LAN卡的MTU设置为非常低(576,有点随机)导致我的数据包停止丢弃
$ sudo ifconfig eno1 mtu 576
我必须在我的每个Linux客户机上都这样做。由于某些原因,同一子网上的windows计算机没有问题。请检查目标计算机是否有容纳整个文件的空间。同样的问题。没有人帮我。我切换到
rsync
,问题就消失了。这不是一个解决方案,但在我的情况下,这是一个不错的解决办法。我们还发现,在发送方和接收方之间的路由器上,错误配置的tcp截获也可能在2112KB处暂停。谢谢!这解决了我在将文件复制到CentOS 6.4虚拟机时遇到的SCP暂停问题。传输将在2112kb的位置停止。现在是2014年,运行最新的Debian,全新安装,这在我的电脑上仍然是个问题?谢谢你的修复。你知道为什么它不是1492开箱即用的吗?它也适用于Ubuntu 14.04。改变MTU或限制速度没有帮助。禁用SACK后,我可以毫无问题地恢复到无限速度。这应该是答案。我得到了错误:mac上的未知oid'net.ipv4.tcp\u sack=0'
$ sudo sysctl -w net.inet.tcp.sack=0
$ sudo ifconfig eno1 mtu 576