TCP 上的 OpenVPN,延迟非常高,但仅限于 Win7 x64

TCP 上的 OpenVPN,延迟非常高,但仅限于 Win7 x64

我知道 TCP 封装在 TCP 上总体上是一个糟糕的想法,但我可以处理偶尔出现的性能下降和 MTU 问题,以及 TCP 中的 TCP 提供的滚雪球效应,其中错误控制在两个层上都启动。

Windows 7 x64 上最新的 OpenVPN 客户端存在严重的延迟问题,ping 隧道内的主机会导致 ping 时间超过 500 毫秒,整体性能极差。吞吐量似乎不错,但实际上只是延迟。

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

在同一个交换机上,同一个 OpenVPN 客户端版本、同一个配置文件,在 Mac OS X 10.5(PowerPC)上也能完美运行。

我根本无法解释这一点。我尝试了各种方法,例如将虚拟适配器的 MTU 值降低到 1400(因为 horrible-ever-since-commercial-switch 文档提到这在 Windows 上不是动态设置的,并建议这样做),我尝试在全局 TCP 设置中禁用 ECN、chimney 和 CTCP,打开和关闭 lzo 压缩,牺牲一只山羊,没有什么比这更好了。

有什么想法吗?起初我以为 Windows 上的 OpenVPN 缺乏 PMTU 支持是造成这种情况的原因,但我尝试使用 Windows XP,它也能完美运行。我从用户那里得到报告,它在 32 位 Windows 7 上也能完美运行。此外,文档似乎说 MTU 设置对于 TCP 连接毫无用处,并且适用于 UDP。

总结:TCP 上的 OpenVPN 很慢,但仅限于 Windows 7 x64,其他一切都运行正常。这是怎么回事?

非常感谢,如果有人能回答这个问题,我将永远感激他让我重新睡个好觉。

答案1

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

还注意到,如果您安装了旧版本,并且只是安装了最新版本来升级,则安装程序不会将其升级到最新版本,并且在更新后从命令行执行“openvpn --version”时仍然显示旧版本号。

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

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

答案2

好吧,那个 Windows 安装失败了,我本周早些时候重新安装了它。现在不知何故,我不再遇到这个问题了。

想想看。我希望我还有系统快照,这样我就可以找出差异 :(

谢谢大家的帮助。

答案3

我遇到过类似的问题(Win7、x64、gui1.0.3、openvpn2.1.4、联想 t500 - 英特尔 82567LM)- 延迟非常大(ping 通常不低于 500 毫秒,而是 >1000+(有时接近 2 秒)且值波动很大(600、1800、550、1400 等)。我还禁用了 LAN 卡和 TAP 适配器的 IPv6(仅关闭一个设备并不能解决问题),目前一切似乎都正常。

答案4

另一个大胆的猜测是:

Win7 的双栈 IP4/IP6 确实更倾向于使用 IP6。也许您遇到了这个问题。假设您正在运行 IP4,禁用 IP6 会有什么不同吗?

相关内容