
我目前正在兩個需要傳出和傳入連接的 VPS 之間配置站點到站點 VPN。它將由高頻寬應用程式使用,因此我需要透過連接獲得的最大速度。
使用 iperf3,我可以可靠地透過連線獲得約 600Mbit/s 的速度,ping 約為 30 毫秒。
透過 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 以獲得任何實際速度嗎?
對於測試/調試/配置的更多方面有什麼建議,以嘗試讓可靠的隧道介面啟動並運行嗎?是否有另一款軟體可以幫助路由傳入連接,以便我可以使用普通的類似代理的隧道?謝謝!
答案1
鑑於評論中發布的鏈接,我決定再看一下這篇 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-mtu 60000:44.9Mbit/s
- 設定“密碼 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。