为什么 SCP 在复制大于 1405 字节的文件时会挂起?

Cha*_*shu 28 networking ftp scp

我正在尝试将文件从我的一台本地机器复制到远程机器。复制大小高达 1405 字节的文件可以正常工作。当我尝试 scp 一个更大的文件时,该文件被复制但 scp 进程挂起并且不退出。我必须按 Ctrl-C 才能返回 shell。

我也观察到了与 FTP 相同的行为。关于可能导致这种情况的任何想法?

小智 36

这绝对听起来像 MTU 问题(就像@Konerak 指出的那样),这就是我要测试的方式:

ip link set eth0 mtu 1400
Run Code Online (Sandbox Code Playgroud)

这会临时将网络接口上允许的网络数据包大小设置为 1400 eth0(您可能需要调整名称)。然后,您的系统将拆分所有超过此大小的数据包,然后再将其发送到网络。如果这修复了 scp 命令,您需要在网络中查找问题或将此丑陋的修复永久化;)

  • 如果他的解决方案有效,您可能希望接受他的答案有效,以便他获得赏金。:) (3认同)
  • @Chandranshu 我想指出,将您的网络 MTU 与某些古老的 ATM 标头大小匹配对于当前的 Internet 主干网不再重要,因此,如果 1492 适合您 - 去吧^^ (2认同)
  • @psusi,在我减少这台机器(位于客户办公室)上的 MTU 后不久,我们了解到他们在连接到多个主机时遇到了这个问题。它也开始出现在同一地区的其他一些客户面前。事实证明,在这种情况下,罪魁祸首是作为基础设施“升级”的一部分,错误地设置了黑洞路由器的 ISP。 (2认同)