通过VPN复制文件时,SCP出现问题

我有一系列的文件,我需要通过一个VPN通过SCP复制到远程Linux服务器每晚。 这些文件并不大,我们在这里讨论的是几十兆字节,但是几秒钟后文件的拷贝几乎总是停止。 使用-vvv运行SCP命令,我在整个尝试的复制过程中都会看到以下内容:

debug2: channel 0: rcvd adjust 131072 debug2: channel 0: rcvd adjust 131072 debug2: channel 0: rcvd adjust 131072 

有什么想法吗? 我看到这个问题在不同的地方被问到,但从来没有答案。 任何帮助,将不胜感激。

你是否允许通过VPN的ICMP? “几秒钟后TCP连接失败”常常翻译成“ PMTU黑洞 ”。

与@ Gerald的回应类似,这个页面http://www.netheaven.com/pmtu.html给出了有关MTU发现的一个很好的解释以及面对这个问题时的select。

此外,思科的白皮书还讨论了有关IPSec VPN隧道的IP分段,MTU发现和MSS,但对于类似情况同样有效。 http://www.cisco.com/en/US/tech/tk827/tk369/technologies_white_paper09186a00800d6979.shtml

你正在运行你使用的任何SSH服务器和客户端的最新版本? 我也build议打他们的电子邮件名单,因为它似乎相当模糊。

我们在一些Linux服务器上有类似的spurios问题(Debian,2.6.24-etchnhalf)。

我们可以通过在远程服务器上禁用TCPvariablestcp_sack(“tcp selective acknowledgement”)来消除停顿。

sysctl -w net.ipv4.tcp_sack=0

在Debian上,tcp_sack是默认启用的。 如果我阅读http://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html ,它应该没有意义,禁用此选项,但在我们的情况下,它的帮助。

您可以通过在/etc/sysctl.conf(在其他Linux系统YMMV上)添加一行net.ipv4.tcp_sack=0来使此更改永久生效。