Vpn

與 SSH 相比,通過 VPN 修復 70% 的傳輸速度減慢?(測試過 OpenVPN、IPSec/L2TP、OpenSSH、SoftEther)

  • August 23, 2018

我目前正在兩個需要傳出和傳入連接的 VPS 之間配置站點到站點 VPN。它將被高頻寬應用程序使用,因此我需要通過連接獲得的最大速度。

使用 iperf3,我可以通過大約 600Mbit/s 的連接可靠地獲得大約 30ms 的 ping。

在 OpenSSH SCP 上,我得到了大約 260Mbit/s 的速度,我很滿意額外的加密。

我一直在嘗試各種 VPN 配置,主要是使用 OpenVPN。我已經嘗試過 sndbuf/rcvbuf 更改,沒有加密,沒有壓縮,但我仍然只能在 443 埠上使用 UDP 獲得 20Mbit,使用 TLS 獲得 40Mbit。

我還設置了 IPSec/L2TP、SoftEther(雖然我只有 500Kbit/s)和 OpenSSH 內置 tun 適配器。這些都不能給我 40Mbit/s 以上的 iperf 速度。

我一直在密切關注每個節點的HDD和CPU,都沒有飽和。一台伺服器的功能明顯不那麼強大,但在測試期間只能達到約 30% 的 CPU 使用率。

我有點不知所措。我需要能夠達到 200Mbit/s 以上速度的東西(我確信這是可能的),並且只需要從一個虛擬介面路由到另一個虛擬介面。從理論上講,這就是 SoftEther 的用途。我應該繼續嘗試修復 SoftEther 以獲得任何實際速度嗎?

有關測試/調試/配置的更多方面的任何建議,以嘗試啟動並執行可靠的隧道介面?是否有另一款軟體可以幫助路由傳入連接,以便我可以使用普通的類似代理的隧道?謝謝!

鑑於評論中發布的連結,我決定再看一下這篇 openvpn 文章: https ://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

使用本文中的幾個設置,我能夠達到約 150Mbit/s 的平均值。以下是我為實現此目的而配置我的 OpenVPN 所採取的步驟。

這些是我按順序嘗試的步驟:

  • 預設設置(帶 AES-128):14.7Mbit/s
  • 啟用 mssfix 0,tun-mtu 6000,片段 0:16.3Mbit/s
  • 設置“無密碼”:17.7Mbit/s
  • 回到 AES-128,tun-mtu 9000:22.0Mbit/s
  • tun-mtu 18000:27.2Mbit/s
  • tun-mtu 36000:37.2Mbit/s
  • tun-man 60000:44.9Mbit / s
  • 設置’cipher BF-CBC’(差別不大):44.0Mbit/s
  • sndbuf 393216、rcvbuf 393216 在伺服器和客戶端:67.1Mbit/s
  • Linux UDP Recv 緩衝區大小增加:102Mbit/s
  • iperf3$$ … $$-P 10 啟用 10 個並行連接:SUM:135Mbit/s - 170Mbit/s

這是最終的 iperf3 輸出:

64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=37.2 ms

$ iperf3 -c 10.8.0.1 -p 5201
Connecting to host 10.8.0.1, port 5201
[  4] local 10.8.0.2 port 59230 connected to 10.8.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  10.3 MBytes  86.5 Mbits/sec    2    632 KBytes
[  4]   1.00-2.00   sec  12.0 MBytes   101 Mbits/sec    7    569 KBytes
[  4]   2.00-3.00   sec  11.4 MBytes  95.8 Mbits/sec    7    443 KBytes
[  4]   3.00-4.00   sec  10.9 MBytes  91.2 Mbits/sec    5    443 KBytes
[  4]   4.00-5.00   sec  11.7 MBytes  98.4 Mbits/sec    2    759 KBytes
[  4]   5.00-6.00   sec  13.0 MBytes   109 Mbits/sec    6    822 KBytes
[  4]   6.00-7.00   sec  13.5 MBytes   113 Mbits/sec    5    696 KBytes
[  4]   7.00-8.00   sec  13.9 MBytes   117 Mbits/sec    6    696 KBytes
[  4]   8.00-9.00   sec  11.8 MBytes  98.9 Mbits/sec    5    696 KBytes
[  4]   9.00-10.00  sec  12.5 MBytes   105 Mbits/sec    4    696 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   121 MBytes   102 Mbits/sec   49             sender
[  4]   0.00-10.00  sec   120 MBytes   101 Mbits/sec                  receiver

與非VPN直連相比:

$ iperf3 -c [...] -p 5201
Connecting to host [...], port 5201
[  4] local [...] port 52172 connected to [...] port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  51.9 MBytes   435 Mbits/sec    0   3.03 MBytes
[  4]   1.00-2.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   2.00-3.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   3.00-4.00   sec  72.7 MBytes   610 Mbits/sec    0   3.03 MBytes
[  4]   4.00-5.00   sec  72.1 MBytes   605 Mbits/sec    0   3.03 MBytes
[  4]   5.00-6.00   sec  73.7 MBytes   619 Mbits/sec    0   3.03 MBytes
[  4]   6.00-7.00   sec  75.0 MBytes   629 Mbits/sec    0   3.03 MBytes
[  4]   7.00-8.00   sec  72.5 MBytes   608 Mbits/sec    0   3.03 MBytes
[  4]   8.00-9.00   sec  74.9 MBytes   628 Mbits/sec    0   3.03 MBytes
[  4]   9.00-10.00  sec  72.6 MBytes   609 Mbits/sec    0   3.03 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   712 MBytes   597 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   710 MBytes   596 Mbits/sec                  receiver

我學到的是

  • 我的網路從增加的 tun-mtu 中受益匪淺。
  • UDP擁塞是一個大問題。增加 Linux UDP recvbuf 顯著提高了 UDP 性能。iperf 中重傳的數據包表明擁塞仍然是一個問題。任何改進的建議表示讚賞。
  • 並行 iperf3 連接有助於進一步提高速度。
  • 只要 CPU 核心保持在 100% 以下,密碼就不會真正影響性能。
  • 在實現千兆速度的開放網際網路上配置 VPN 很困難。
  • 這仍然是普通網路性能的 1/6。

引用自:https://serverfault.com/questions/927616