OpenVPN over TCP,可怕的延遲,但僅限於 Win7 x64
我知道 TCP 封裝在 TCP 上通常是一個糟糕的想法,但我可以處理偶爾降低的性能和 MTU 問題,並且 TCP 內的滾雪球效應 TCP 提供了在兩層都進行錯誤控制的地方。
Windows 7 x64 上最新的 OpenVPN 客戶端存在嚴重的延遲問題,在隧道內 ping 主機會導致超過 500 毫秒的 ping 時間,並且總體性能極差。吞吐量看起來不錯,實際上只是延遲。
但是,在同一台電腦上,Linux 64 位(ubuntu 10.04,相同的 OpenVPN 版本,相同的 OpenVPN 配置,沒有不同的設置)上的 OpenVPN 客戶端執行完美。~30ms,一切都非常有用。
在同一台交換機上,相同的 OpenVPN 客戶端版本,相同的配置文件,在 Mac OS X 10.5 (PowerPC) 上也可以完美執行。
我根本無法解釋這一點。我嘗試了各種方法,例如將虛擬適配器的 MTU 值降低到 1400(因為可怕的商業開關文件提到這不是在 Windows 上動態設置的,並推薦了這樣的操作),我試過了在全域 TCP 設置中禁用 ECN、煙囪和 CTCP,打開和關閉 lzo 壓縮,犧牲一隻山羊,沒有什麼能讓它變得更好。
有任何想法嗎?起初我認為 Windows 上的 OpenVPN 缺乏 PMTU 支持是造成這種情況的原因,但我嘗試使用 Windows XP 並且它也可以完美執行。我從使用者那裡得到報告說它在 Windows 7 32 位上也能完美執行。此外,文件似乎說 MTU 設置對於 TCP 連接毫無價值,並且適用於 UDP。
tl; dr:基於 TCP 的 OpenVPN 速度很慢,但僅在 Windows 7 x64 中,其他一切正常。是什麼賦予了?
非常感謝,如果有人能回答這個問題,我將永遠欠我的睡眠。
好吧,那個 windows 安裝踢了水桶,我本週早些時候重新安裝了它。現在不知何故,我不再有這個問題。
去搞清楚。我希望我仍然有系統的快照,這樣我就可以找出差異:(
謝謝大家的幫助。
您是否 100% 確定您使用的是最新版本 (2.1.1)?我們實際上已經讓一些 linux 客戶端遇到了同樣的問題,我們發現他們安裝了舊版本的客戶端軟體。
還注意到如果您安裝了舊版本,並且只是安裝了最新版本來升級安裝程序並沒有將其升級到最新版本,並且在命令行之後執行“openvpn –version”時仍然顯示舊版本號更新。
要真正獲得新版本,我們必須完全解除安裝 ovpn,然後安裝最新版本。
祝你好運,如果這沒有幫助,我希望你能找到問題!