几行后,通过OpenVPN进行的SSH会话中断/锁定


12

我有大量运行debian 6(ARM)的相同无风扇PC。其中大多数通过comcast连接,可以正常工作。有些连接到“ WiMax”调制解调器,并且出现通信问题。

具体来说:如果我使用这些命令之一并尝试使用“ ps -ax”之类的命令,则会返回3行,然后会话被锁定。如果我坐下来,最终它将以“由对等方关闭的会话”结束。

我尝试过的

  • ssh -vvv →没有错误信息
  • ssh <user@host> 'command'→这有时会返回命令的完整输出。有时它根本无法连接。

关于其他尝试的建议?

我发现我可以成功执行一些命令:例如,按回车键十次或更多次是可以的。cd ~然后lf工作df -h。我可以df成功运行很多次,但是一旦尝试输出更多的东西(例如ls /etc),它就会锁定。

我尝试使用OpenVPN在这两个主机之间进行通信是否有所不同?


确保您的路径MTU不低于您配置的接口MTU。SSH不会分段,因此,将DF位置1时,将丢弃数据包。阅读本文以获得更详细的解释。
亚伦·科普利2014年

1
尝试将所有接口上的MTU设置为1400,但没有明显效果。经过测试ping -c 1 -s $((5000-28)) -M do machine-ip,返回了1500-与机器相同
ethrbunny14年

1
tracepath -n <ip>确认这一点:整机允许1500。
ethrbunny

1
原谅我的无知,但是-T在这种情况下有什么帮助?
亚伦·科普利2014年

2
<阅读第二段>这是一个MTU问题。<进一步阅读>是的,MTU问题。请参阅此线程以获取解释。我不赞成将其关闭,因为有一点其他线程没有讨论:您需要在VPN配置中进行哪些更改以解决问题。
吉尔(Gilles)'所以

Answers:


11

您有一个MTU问题的症状:某些TCP连接冻结,对于给定的命令或URL或多或少具有可重复性,但总体模式却不容易辨认。一个明显的症状是,只要您不运行具有大输出的命令,交互式ssh会话就可以很好地工作。有关说明,请参见无法通过PPPoE在Linux上访问选定的https站点

OpenVPN有几个与MTU相关的选项-在手册中搜索“ mtu”。我没有足够的经验来确定您需要更改哪个选项。(甚至有可能您可以在Wimax调制解调器配置中进行更改。)最可能更改的选项是mssfix:尝试降低该值,直到解决问题为止。默认值为1450;默认值为1450。大约1400左右的问题可能会解决您的问题。尝试openvpn --fragment 1200 -mssfix; 如果有帮助,请增加该值,直到开始断裂。


通过mssfix 1200在服务器上进行设置开始并重新启动。到现在为止还挺好。如果可以,我将其设置为1300或1400,然后看看会发生什么。太多的客户端无法更改所有远程配置,因此服务器端必须这样做。
ethrbunny

知道这是MTU!
亚伦·科普利2014年


3

我们遇到了同样的问题,这确实是一个MTU问题。但是对我们来说,问题不在openVPN配置中,而在tun0接口上。

我们如何解决它:首先找到通过的最大数据包大小,

ping <host> -s 1500 -M do

并减小1500的值,直到获得一个值为止(对我们来说是1350)。

找到正确的值后,使用更改tun0接口

sudo ip link set dev tun0 mtu 1350

正如塞巴斯蒂安在这里提出的。之后,VPN运行顺利。

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.