由于 n2n v1 和 v2s 的直连成功率较低,速度也慢(主要是因为它们的加密算法速度慢;而不加密不安全不说,还容易受到干扰,然后速度会变慢),因此不再重视它们,这里主要测试 v2 和 v3,并与 zerotier、tinc 的速度进行对比(直连情况下)。
先说说我的测试环境和测试方法:我有一个小主机,CPU 是 J1800(双核处理器,最大睿频为2.58GHz),配有 8g 内存,256g ssd 固态硬盘,上面安装的是 ubuntu 18.04 x 64 系统,安装了 docker,又在 docker 里安装了 openwrt-19.07.8 系统,我的 n2n 就是放到这个 openwrt 系统里,我就是在这样两个不同的 openwrt 之间进行测试的。
测试方法是:一个 openwrt 系统下运行“iperf -s”启动测试服务器,另外一个 openwrt 系统下用“iperf -i 10 -t 50 -c ip”来测试其连接速度。其中的 ip 是指运行“iperf -s”的服务器的 ip,可以是 n2n ip,也可以是真实局域网上的 ip,还可以是 zerotier 的 ip,选择哪一个 ip 就能测试哪一种网络的速度。一次标准的测试结果信息如下(用 n2n_v3 测试的),最后一项的 Bandwidth 是平均值,也就是我们下面要对比的速度(带宽)。
/ # iperf -i 10 -t 50 -c 172.17.12.7
------------------------------------------------------------
Client connecting to 172.17.12.7, TCP port 5001
TCP window size: 99.0 KByte (default)
------------------------------------------------------------
[ 3] local 172.17.12.8 port 55712 connected with 172.17.12.7 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 104 MBytes 87.0 Mbits/sec
[ 3] 10.0-20.0 sec 105 MBytes 88.2 Mbits/sec
[ 3] 20.0-30.0 sec 102 MBytes 85.8 Mbits/sec
[ 3] 30.0-40.0 sec 104 MBytes 87.2 Mbits/sec
[ 3] 40.0-50.0 sec 105 MBytes 88.0 Mbits/sec
[ 3] 0.0-50.0 sec 520 MBytes 87.2 Mbits/sec
/ #
以下未注明程序的版本情况:
n2n_v2:n2n ntop v.2.8.0_r540(2.8-stable)
n2n_v3:n2n ntop v.3.1.1-1-g661858a
zerotier:v1.6.5 (openwrt 里面直接使用 opkg 安装上的)
tinc:v1.0.35(openwrt 里面直接使用 opkg 安装上的)
n2n 运行参数:edge3 -d A53 -a 172.17.12.7 -c A53 -k test -l x.x.x.x:10090 -Ef -A5 -e auto & # 其余类似
2023-2-17 15:00 局域网内,测试结果如下(直连状态下,只有我在活动状态时),v2、v3 的主程序 edge 都是在同等环境和参数下连续用 cmake 编译出来的;中心节点 x.x.x.x 的带宽只有 1 Mbits/sec。
[ 3] 0.0-50.0 sec 572 MBytes 96 Mbits/sec # 100% # n2n_v3 (-A5 加密)
[ 3] 0.0-50.0 sec 595 MBytes 100 Mbits/sec # 104% # n2n_v2 (-A5 加密)
[ 3] 0.0-50.0 sec 488 MBytes 84 Mbits/sec # 88% # zerotier (默认设置,有时只有 42 Mbits/sec)
[ 3] 0.0-50.0 sec 55.2 GBytes 9.49 Gbits/sec # 9900% # lan (真实局域网IP)
2023-3-9 10:00 局域网内,v2 用 github.com/lucktu/cnn2n_new2 上的 v2 加强版,未明条件同上,下同
[ 3] 0.0-50.0 sec 558 MBytes 93.5 Mbits/sec # 100% # n2n_v3(-A5)
[ 3] 0.0-50.0 sec 627 MBytes 105 Mbits/sec # 112% # n2n_v2(-A5)
[ 3] 0.0-50.0 sec 273 MBytes 45.7 Mbits/sec # 49% # zerotier(速度上不来,估计最大是 *2)
[ 3] 0.0-50.3 sec 163 MBytes 27.2 Mbits/sec # 29% # tinc(转发?宿主机作两个 docker 的转发中心)
[ 3] 0.0-50.0 sec 56.7 GBytes 9.75 Gbits/sec # 10428 # lan 的速度
2023-3-13 14:20 远程测试(群晖213J<--->J1800),群晖的 CPU 都到100%了(带宽刚好跑满)
[ 3] 0.0-50.1 sec 68.5 MBytes 11.5 Mbits/sec # v2s # 45%
[ 3] 0.0-50.2 sec 56.6 MBytes 9.46 Mbits/sec # v1 # 37%
[ 3] 0.0-50.1 sec 230 MBytes 38.5 Mbits/sec # v2-A5 # 149% # v2 加强版
[ 3] 0.0-50.0 sec 154 MBytes 25.8 Mbits/sec # v3-A5 # 100% # 用 A3 是 32.1 Mbits/sec(124%)
2023-3-30 22:30 远程测试(i5-10400F<--->J1800),CPU 占用都很低,但网友(江湖一**)的共享网络带宽较低
[ 1] 0.00-50.27 sec 133 MBytes 22.2 Mbits/sec # v2s # 97%
[ 1] 0.00-50.52 sec 82.3 MBytes 13.7 Mbits/sec # v1 # 60% # 多次尝试后才直连
[ 1] 0.00-50.20 sec 150 MBytes 25.1 Mbits/sec # v2-A5 # 109% # v2 加强版
[ 1] 0.00-50.22 sec 138 MBytes 23.0 Mbits/sec # v3-A5 # 100%
[ 1] 0.00-50.14 sec 133 MBytes 22.3 Mbits/sec # v3-A4 # 97%
2023-3-31 12:45-21:50 远程测试(ARM64开发板<--->J1800),CPU 占用都很低,网友(雪*兰)的网络是联通 5g
两边连接:PC— PPPoE路由器;手机联通5G— 手机热点WIFI 6— 笔记本电脑— 有线USB千兆网卡— ARM64开发板
后面他又改联通光纤,里面有PCDN(连接数稳定在1.5万以上),他还玩 BT,结果与 5g 的类似,此处略
由于(多次测试时)速度波动很大,最后 3 个的速度快慢无定论;以下是第一次的测量值
小结,在 CPU 是 arm 系列时:
1. v2 加强版的 MTU 大于 1337 时可以 ping 通,但一方速度为 0,另一方正常,建议调小(1330 / 1290)
2. v1、v2s 容易断,v2 加强版 和 v3 的稳定性都有所改善,但也有一定几率会断
[ 3] 0.0-50.1 sec 24.4 MBytes 4.08 Mbits/sec # v2s # 51%
[ 3] 0.0-50.1 sec 27.6 MBytes 4.63 Mbits/sec # v1 # 58%
[ 3] 0.0-50.0 sec 20.9 MBytes 3.50 Mbits/sec # v2-A5 # 44% # v2 加强版,默认 MTU = 1386
[ 3] 0.0-50.0 sec 47.6 MBytes 7.98 Mbits/sec # v3-A5 # 100%
[ 3] 0.0-50.0 sec 51.1 MBytes 8.58 Mbits/sec # v3-A4 # 108%
[ 3] 0.0-50.0 sec 53.8 MBytes 9.01 Mbits/sec # v2-A5 # 113% # v2 加强版,再加参数 -M 1290
需要说明的是:
1、不同的编译结果,速度可能会有较大差异,例如我曾经编译的 v3,上面的测试速度只有最新编译的一半,而 QQ 群里的“白天不懂夜的黑”编译的也与我编译的结果不一样,但与我最新编译的速度相近。如果你自己不会编译,那么推荐直接用他编译的;自己会编译的话,也请对比以后再用速度最快的。
2、从上面的结果可以看出,真实局域网 ip 的速度是 n2n 速度的 100 倍(n2n、zerotier 之类的,由于使用的虚拟网卡,以及加密解密压缩以后,速度大打折扣也很“正常”)。
3、上面的所有测试过程中,CPU 的占用率都是接近了 100%(特别注明的除外),所以速度受限于 CPU 的性能。
4、它们之间都是直连,n2n的中心节点带宽只有 1 Mbits/sec
2023-6-13 到 2023-6-17 这几天,经过不断的测试(不同系统、环境之间),发现上面测试的 MTU(A5下,最大是1337)还与加密方式有关,我测得不同加密方式下的最大通用 MTU 为: A1-1354;A2-1345;A3-1329;A4-1337;A5-1337 (例如 ubuntu18 <--> docker 版 ubuntu 间就可以得到这样的完整数据。同样的方法,测得 v1-1294;v2s-1357;v3-1334),因此 建议 n2n_v2 的 MTU 取 1328,加密方式在 A5、A3 之间选择。
=========================================================================================================================================
另外,我也测试了几种加密方式的速度,结果如下
2023.2.17 n2n_v3 的情况
[ 3] 0.0-50.0 sec 652 MBytes 109 Mbits/sec # A1 114%
[ 3] 0.0-50.0 sec 542 MBytes 91 Mbits/sec # A2 95%
[ 3] 0.0-50.0 sec 553 MBytes 93 Mbits/sec # A3 97%(默认)
[ 3] 0.0-50.0 sec 608 MBytes 102 Mbits/sec # A4 106%
[ 3] 0.0-50.0 sec 572 MBytes 96 Mbits/sec # A5 100%
2023.3.9 n2n_v2 的情况(用 v2 加强版)
[ 3] 0.0-50.0 sec 765 MBytes 128 Mbits/sec # A1 114%
[ 3] 0.0-50.0 sec 521 MBytes 87.4 Mbits/sec # A2 78%(默认)
[ 3] 0.0-50.1 sec 644 MBytes 108 Mbits/sec # A3 96%
[ 3] 0.0-50.0 sec 673 MBytes 113 Mbits/sec # A4 101%(另一次是 103%)
[ 3] 0.0-50.0 sec 669 MBytes 112 Mbits/sec # A5 100%
为了速度更快,建议 v3 采用 -A4 加密,v2 采用 -A5 (v2 的 chacha20 由于很难编译成功,只好弃用)
Welcome to n2n v2.8.2_r558_7e32ff0 for Linux
Built on Aug 17 2023 22:00:40
mt7621平台上
/tmp/edge2 -u 0 -g 0 -d edgelll -a 10.0.0.2 -c test -l t1.lucktu.com:10086 -A2 -k test &
##rm2100_padavan
/tmp/edge2 -u 0 -g 0 -d edge2 -a 10.0.0.4 -c test -l t1.lucktu.com:10086 -A2 -k test &
##r3g_OpenWrt
密码 加密方式 上行 下行 CPU%
无密码 无A 30.5M 21.2M 99%
有密码 无A 18.9M 16.8M 99%
无密码 -A1 33.6M 21.1M 99%
有密码 -A2 18.7M 16.3M 99%
有密码 -A3 22.0M 18.8M 99%
有密码 -A4(不支持)
有密码 -A5 18.6M 16.7M 99%
无密码就不说了,
你测得有密码是 A3 最快吧,也是一种场景,供大家参考
我移动和联通跨网,能达到6MB,其实主要看上传带宽
如果你的设备计算能力不够的话,就会看设备的能力了