如何防止SSH冻结openvpn客户端到客户端连接

我有与此处描述的问题完全相同的问题,但我不能要求作者澄清,因为我是新用户,我无法对此发表评论,所以我发布了一个新问题(我尝试在此下发布作为同一线程的参考答案,它被删除,因为它没有提供答案……).

How do I prevent TCP connection freezes over an OpenVPN network?

问题:有没有人对如何排除故障和/或确定该线程中描述的TCP问题的根本原因有任何建议?就像远程端不接受VPN客户端发送的ACK消息一样.

我的设置与原始qustion完全相同:CentOS服务器(拓扑子网)和两个客户端,一个CentOS和一个Ubuntu14.03.当我从ubuntu-client到centos-client执行’ssh cat abc.txt’时,centos的vpn连接停止.让它重新启动的唯一方法是重新启动openvpn服务器(在centos盒子上)和centos上的openvpn客户端 – 只需重新启动centos-client连接就不会使它运行(它会在〜之后调出tun0) 1-2分钟,但我不能通过vpn ping或ssh盒子了.我也尝试了在其他线程(tun-mtu 1300 /片段1100 / mssfix等)中找到的所有MTU调整建议,但没有一个有帮助.

更让人感到奇怪的是,如果我从Ubuntu做同样的ssh-cat,使用CentOS服务器vpn进行互联网到centos-client的公共ip地址(从而绕过centos-client< - > centos-服务器vpn腿),一切正常(没有档位,永远).

更新1:我发现解决这个问题是一种解决方法,但这是一个非常难看的问题.在这里发布,以防有​​些人提出任何其他想法/提示.当我在openvpn服务器(而不是客户端,仅服务器)上将详细级别设置为9时,问题再也不会发生.动词9使openvpn服务器记录大量数据,并耗尽其运行的100%的CPU.这样就限制了传输速度,使scp成功完成,没有停顿; scp现在以40-50Kb /秒的速度复制,而在它达到100Kb /秒以上之后停止.

更新2:我认为这是一个缓冲问题.传输的文件大小(通过scp或ssh cat)很重要.如果我scp一个700KB的文件(或更小),它总是会成功,无论我尝试多少次.如果我尝试使用800KB文件,它将始终在7xxKb之后失败/停止.

最佳答案
我已经看到类似的问题,并能够通过禁用TCP窗口缩放来解决它们.

sysctl -w net.ipv4.tcp_window_scaling=0

也许这会指出你可能出现问题的正确方向.

转载注明原文:如何防止SSH冻结openvpn客户端到客户端连接 - 代码日志