Open Source VPN 之不嚴謹比較
文章目錄
Open Source VPN
-
目前市面上 Open Source VPN 有一堆, 查了一下 OpenSource 的就有一堆, 眼花撩亂, 不知該選誰...
- OpenVPN: https://openvpn.net/
- SoftEther VPN: https://softether.org/
- Libreswan VPN: https://libreswan.org/
- OpenSwan VPN: https://openswan.org/
- strongSwan VPN: https://www.strongswan.org/
- FreeLan VPN: https://www.freelan.org/
- Open Connect VPN: https://www.infradead.org/openconnect/
-
先看一下大家在 GitHub 上的星星數, 前兩名是 OpenVPN 和 SoftEther VPN
OpenVPN SoftEther LibreSwan OpenSwan StrongSwan FreeLan OpenConnect GitHub star 7.2K 9K 662 770 1.4K 1.2K N/A Last release 2022/5/24 2021/6/24 2022/5/25 2021/1/22 2022/4/29 2019/5/7 2022/4/29 -
再用 Google Trend 比一下, 結果也滿明顯的, 第一名是 OpenVPN, 第二名是 SoftEther VPN, 那就比這兩個就好. (因為 Google Trend 只能比 5 個, 另外兩個沒放上來的基本上也是躺平)
測速比較
- 測速情境如下
- 使用 iPerf3 來測速
- OpenVPN 使用預設的環境 (預設沒有開啟壓縮, 因為設定畫面上有提到開啟壓所可能會影響 security)
- SoftEther VPN 選擇的是他自己的 protocol (走 5555 那個)
-
不透過 VPN 直接連線, 每秒約 556Mbits
1Connecting to host 211.73.81.92, port 5201 2[ 4] local 10.100.201.3 port 49787 connected to 211.73.81.92 port 5201 3[ ID] Interval Transfer Bandwidth 4[ 4] 0.00-1.00 sec 43.4 MBytes 363 Mbits/sec 5[ 4] 1.00-2.00 sec 20.5 MBytes 172 Mbits/sec 6[ 4] 2.00-3.00 sec 35.1 MBytes 295 Mbits/sec 7[ 4] 3.00-4.00 sec 67.0 MBytes 562 Mbits/sec 8[ 4] 4.00-5.00 sec 86.4 MBytes 725 Mbits/sec 9[ 4] 5.00-6.00 sec 81.1 MBytes 679 Mbits/sec 10[ 4] 6.00-7.00 sec 81.5 MBytes 686 Mbits/sec 11[ 4] 7.00-8.00 sec 82.8 MBytes 693 Mbits/sec 12[ 4] 8.00-9.00 sec 81.8 MBytes 687 Mbits/sec 13[ 4] 9.00-10.00 sec 83.0 MBytes 695 Mbits/sec 14- - - - - - - - - - - - - - - - - - - - - - - - - 15[ ID] Interval Transfer Bandwidth 16[ 4] 0.00-10.00 sec 662 MBytes 556 Mbits/sec sender 17[ 4] 0.00-10.00 sec 662 MBytes 556 Mbits/sec receiver
-
透過 OpenVPN 連線, 每秒約 193Mbits
1Accepted connection from 192.168.211.4, port 49750 2[ 5] local 192.168.211.3 port 5201 connected to 192.168.211.4 port 49751 3[ ID] Interval Transfer Bitrate 4[ 5] 0.00-1.00 sec 28.5 MBytes 239 Mbits/sec 5[ 5] 1.00-2.00 sec 21.3 MBytes 179 Mbits/sec 6[ 5] 2.00-3.00 sec 21.1 MBytes 177 Mbits/sec 7[ 5] 3.00-4.00 sec 20.6 MBytes 173 Mbits/sec 8[ 5] 4.00-5.00 sec 18.7 MBytes 157 Mbits/sec 9[ 5] 5.00-6.00 sec 21.6 MBytes 181 Mbits/sec 10[ 5] 6.00-7.00 sec 25.4 MBytes 213 Mbits/sec 11[ 5] 7.00-8.00 sec 23.6 MBytes 198 Mbits/sec 12[ 5] 8.00-9.00 sec 23.8 MBytes 200 Mbits/sec 13[ 5] 9.00-10.00 sec 25.3 MBytes 212 Mbits/sec 14[ 5] 10.00-10.03 sec 660 KBytes 175 Mbits/sec 15- - - - - - - - - - - - - - - - - - - - - - - - - 16[ ID] Interval Transfer Bitrate 17[ 5] 0.00-10.03 sec 230 MBytes 193 Mbits/sec receiver
-
透過 SoftEther VPN 連線, 每秒約 98.8Mbits
1Accepted connection from 192.168.211.4, port 37244 2[ 5] local 192.168.211.3 port 5201 connected to 192.168.211.4 port 37246 3[ ID] Interval Transfer Bitrate 4[ 5] 0.00-1.00 sec 11.5 MBytes 96.1 Mbits/sec 5[ 5] 1.00-2.00 sec 15.1 MBytes 127 Mbits/sec 6[ 5] 2.00-3.00 sec 10.7 MBytes 89.9 Mbits/sec 7[ 5] 3.00-4.00 sec 9.61 MBytes 80.6 Mbits/sec 8[ 5] 4.00-5.00 sec 12.1 MBytes 101 Mbits/sec 9[ 5] 5.00-6.00 sec 9.89 MBytes 83.0 Mbits/sec 10[ 5] 6.00-7.00 sec 6.34 MBytes 53.2 Mbits/sec 11[ 5] 7.00-8.00 sec 11.1 MBytes 92.7 Mbits/sec 12[ 5] 8.00-9.00 sec 15.7 MBytes 131 Mbits/sec 13[ 5] 9.00-10.00 sec 15.8 MBytes 132 Mbits/sec 14[ 5] 10.00-10.01 sec 235 KBytes 148 Mbits/sec 15- - - - - - - - - - - - - - - - - - - - - - - - - 16[ ID] Interval Transfer Bitrate 17[ 5] 0.00-10.01 sec 118 MBytes 98.8 Mbits/sec receiver
比較意外的是, SoftEhter VPN 官方網站有提到他比 OpenVPN 快 13 倍, 但測起來卻不是這樣. 不過一來這是 2006 年的測速, 二來 SoftEther VPN 的設定很多, 也 很有可能是我沒有調整好, 所以這個測試僅供參考.
CPU 使用比較
- 這是測試在使用 iPerf3 測速時, 同時觀察 CPU 的使用率. 注意, 這是測 OpenVPN/SoftEther VPN 在用 iPerf3 測速時的 CPU, 並不是平常無流量或低流量的 CPU 使用. 沒有連線時, 兩者消耗的 CPU 都非常非常低.
-
透過 OpenVPN 連線, CPU 約使用 30.7%
1top - 15:01:40 up 2 days, 3:22, 4 users, load average: 0.00, 0.00, 0.00 2Tasks: 119 total, 1 running, 118 sleeping, 0 stopped, 0 zombie 3%Cpu(s): 5.4 us, 9.9 sy, 0.0 ni, 82.8 id, 0.0 wa, 0.0 hi, 1.9 si, 0.0 st 4MiB Mem : 16009.7 total, 13538.6 free, 417.3 used, 2053.8 buff/cache 5MiB Swap: 0.0 total, 0.0 free, 0.0 used. 15288.2 avail Mem 6 7 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8 934 openvpn+ 20 0 8012 6748 5544 S 32.3 0.0 0:14.82 openvpn-openssl
-
透過 SoftEther VPN 連線, CPU 約使用 22.3%
1top - 15:05:47 up 2 days, 3:26, 4 users, load average: 0.00, 0.01, 0.00 2Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie 3%Cpu(s): 0.3 us, 0.5 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st 4MiB Mem : 16009.7 total, 13512.0 free, 436.3 used, 2061.4 buff/cache 5MiB Swap: 0.0 total, 0.0 free, 0.0 used. 15269.1 avail Mem 6 7 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 813540 ubuntu 20 0 1016272 20404 5576 S 22.7 0.1 0:03.93 vpnserver
結論
-
速度
連線方式 速度 直接連線 556 Mbits OpenVPN 193 Mbits SoftEther 98.8 Mbits -
CPU 使用率
連線方式 CPU 使用率 OpenVPN 32.3% SoftEther 22.7%
注意
- 有一點要注意的是, OpenVPN 雖然 Open Source, 但他的 免費版本只能有兩個連線 (參考這裡)
延伸閱讀
- 如果你要自己在 Linux(Ubuntu) 上安裝 OpenVPN server, 可參考 OpenVPN server 簡易安裝使用 (Ubuntu)
- 用果有興趣使用 Prometheus 來監控 OpenVPN server, 可參考 用 Prometheus 來監控 OpenVPN server
- 如果你使用的是 Asuswrt-Merlin, 他有內建 OpenVPN server, 可參考 在 Asuswrt-Merlin 使用 OpenVPN server