当我管理文件时,openvpn连接上的SSH通信冻结


13

我在两个gentoo框之间使用共享密钥建立了openvpn(两端为2.1_rc15版本)连接。它在大多数情况下都能正常工作。我在vpn上使用mysql,http,ftp,scp没有问题。但是,当我通过VPN从客户端向服务器SSH时,会发生奇怪的事情。我可以登录,我可以执行一些命令。但是,如果我尝试运行诸如top之类的ncurses应用程序,或者尝试获取文件,则连接将停止,并且我将不得不切断ssh会话。

例如,我可以执行“ echo blah; echo。; echo blah”,它将在ssh会话中输出三行文本。但是,如果我执行“ cat / etc / motd”,则该会话将在按Enter键的那一刻冻结。

我在Mac上编译了openvpn 2.1.1,并从gentoo客户端复制了配置目录。Mac连接和ssh会话运行良好,没有冻结。

然后,我将其编译在我的旧gentoo盒(2.6.26内核)上,由于硬盘驱动器快要死了,因此我将其退役,并且对其进行ssh也可以正常工作。

为什么我的全新gentoo盒子无法使用?我尝试过编译三个不同的内核,但除此之外,我能想到的旧的和较新的gentoo盒之间应该没有区别。

有什么问题的建议吗?


在我的情况下,sshcattop和HTTP所有的工作,但scp没有(它会显示100%的转移和挂在那里)。将MTU降低到1380,将其固定。
罗杰·迪克

Answers:


13

闻起来像mtu问题。尝试按照官方手册或此博客文章中的说明降低它。


2
谢谢。我曾尝试删除以太网接口的MTU,但没有结果,但是像您提到的帖子中那样,在客户端和服务器上添加“片段1400”效果很好。我不知道为什么较旧的gentoo盒能正常工作,而较新的gentoo盒却不能。哦,好,现在修复。谢谢
Pawz Lion

谢谢。这解决了我的问题。在办公室,我有完全相同的设置,没有任何问题,但是在我的家中,它挂在某些情况下。如果我在带有-的文件的网址上卷曲,它将挂起。没有-,它可以工作:D,如果我在文件中分解长行,它也可以工作。这没有任何意义,但是感谢您的解决方案。
彼得

1
注意上面链接的博客文章中提到的openvpn的mtu-test选项。这将根据经验测试您的openvpn隧道的mtu,因此您知道设置fragment和mssfix时要使用的值,而不仅仅是猜测。我在互联网上看到很多帖子,将mtu / fragment设置为1400、1350、1200等。但是当我实际运行mtu-test时,openvpn确定MTU为1189!
jdhildeb 2015年


1

当OpenVPN连接3g覆盖范围较广且丢失数据包时,我遇到了类似的问题。切换到TCP而不是UDP可以解决此后的所有问题。希望这可以帮助你。


在TCP上运行VPN会带来一系列问题。解决MTU问题并保留UDP可能比使用TCP更好。
kasperd 2014年

对于OP而言,仅更改MTU可能比从TCP更改为UDP更好。如果您的状态非常糟糕,以至于OpenVPN甚至都无法建立稳定的连接,那么您应该尝试使用TCP而不是UDP。在极坏的3G情况下,更改为TCP只是对我有用。
2014年

1

是的,这全都与MTU有关。

但就我而言,我遇到了一个更奇怪的问题。在家里,使用OpenVPN Windows客户端会冻结。但是在我的办公室工作正常。

我试图在ADSL调制解调器上更改它,但没有成功。在我的办公室,我使用电缆调制解调器和其他ISP。

将Windows TAP适配器的MTU更改为1200后,它可以正常工作。比那高的东西会冻结我。

在此处输入图片说明


0

我使用tunnelblick而不是OpenVPN,但找不到MTU值的配置。相反,我在ifconfig(我的情况是utun0)的输出中找到了VPN的接口,并手动设置了MTU,如下所示:

ifconfig utun0 mtu 576

之后,我的ssh会话将不再冻结。

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.