基于TCP的OpenVPN,可怕的延迟,但只在Win7 x64

我知道通过TCP封装TCP通常是一个可怕的想法,但是我可以处理偶尔出现的性能下降和MTU问题,TCP内部的雪球效应提供了错误控制在这两个层次上起作用的地方。

Windows 7 x64上的最新OpenVPN客户端存在可怕的延迟问题,在隧道内对主机进行ping操作会导致> 500ms的ping时间,并导致整体性能下降。 吞吐量看起来不错,它确实只是延迟。

但是,在同一台计算机上,Linux 64位上的OpenVPN客户端(Ubuntu 10.04,相同的OpenVPN版本,相同的OpenVPNconfiguration,没有不同的设置)运行完美。 〜30ms,一切都很实用。

在同一台交换机上,同样的OpenVPN客户端版本,相同的configuration文件,在Mac OS X 10.5(PowerPC)也完美地工作。

我无法解释这一点。 我已经尝试了各种各样的东西,例如将虚拟适配器的MTU值降低到1400(因为商业切换的可怕的文档提到这个不是在Windows上dynamic设置的,并且推荐这样的动作),我试过了在全球TCP设置中禁用ECN,烟囱和CTCP,开启和closuresLzo压缩,牺牲一只山羊,没有什么更好的。

有任何想法吗? 起初,我认为在Windows上OpenVPN的PMTU支持不足是造成这种情况的原因,但是我尝试了使用Windows XP,它的工作原理也是完美无缺的。 我从用户那里得到了报告,它也能在Windows 7 32位上完美地工作。 此外,文档似乎说,MTU设置对于TCP连接是毫无价值的,并且用于UDP。

tl;博士:TCP上的OpenVPN是慢的,但只有在Windows 7的64位,一切工作正常。 是什么赋予了?

非常感谢,如果有人能回答这个问题,我会永远欠我的睡眠债务。

你是100%确定你是最新版本(2.1.1)? 我们实际上有一些Linux客户端遇到同样的问题,我们发现他们安装了旧版本的客户端软件。

还注意到,如果您安装了旧版本,并刚刚安装最新版本升级安装程序没有升级到最新版本,仍然显示旧版本号时,从命令行执行“openvpn –version”后更新。

要真正获得新版本,我们必须完全卸载ovpn,然后安装最新的。

祝你好运,如果这没有帮助,我希望你find问题!

那么,Windows安装踢了桶,我本周早些时候重新安装它。 现在不知何故,我不再有这个问题。

去搞清楚。 我希望我仍然有一个系统的快照,所以我可以找出差异:(

感谢大家的帮助。

(Win7,x64,gui1.0.3,openvpn2.1.4,lenovo t500 – intel 82567LM) – 可怕的延迟(ping通常不低于500ms,而是> 1000+(有时接近2s),非常波动的值(600 ,1800,550,1400等)。我已经禁用IPv6的LAN卡和TAP适配器(只有一个设备closures没有解决问题),现在一切似乎都没问题。

胡乱猜测:

您的防病毒软件或太智能的防火墙会尝试检查stream量(尝试缓冲而不转发,希望看到病毒,然后超时并发送已缓冲的内容)。

另一个猜测:

Win7的双栈IP4 / IP6更经常使用IP6。 也许你遇到了一个问题。 据推测你正在运行IP4,当你禁用IP6时有什么区别吗?