通过VPN复制文件期间SCP停顿的问题


11

我每天晚上有一系列文件需要通过SCP通过VPN复制到远程linux服务器。文件不是很大,这里我们谈论的是几十兆字节,但是文件复制几乎总是在几秒钟后停顿。使用-vvv运行SCP命令,在整个尝试复制过程中,我会一遍又一遍地看到以下内容:

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

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


我已经经历过很多次类似的事情,尽管目前我还没有任何可靠的方法。看看hpn-ssh是否会有所作为可能很有趣。
sfink 2010年

Answers:




1

您是否正在运行所使用的任何SSH服务器和客户端的最新版本?我也建议在此打上他们的电子邮件列表,因为它似乎比较晦涩。


1

与某些Linux服务器(Debian,2.6.24-etchnhalf)相比,我们在scp方面也存在类似的spurios问题。

通过禁用远程服务器上的TCP变量tcp_sack(“ tcp选择性确认”),我们可以消除停顿:

sysctl -w net.ipv4.tcp_sack=0

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

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


0
  1. 找出您的路径MTU

    ping -M do -s 1472 host.domain
    PING host.domain (10.0.0.1) 1472(1500) bytes of data.
    ping: sendmsg: Message too long
    ping: local error: Message too long, mtu=1196
    ^C
    ping -M do -s 1168 host.domain
    PING host.domain (10.0.0.1) 1168(1196) bytes of data.
    1176 bytes from 10.0.0.1: icmp_seq=1 ttl=60 time=283 ms
    ^C
    
  2. 为您的网络连接设置该MTU

    ip link set eth0 mtu 1196
    

    (请注意,这是暂时的)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.