Skip to content

性能测试

参与测试的软件及其版本(为避嫌 + 公平待遇,用“某”代替):

软件名版本链接
EasyTier1.2.1https://github.com/EasyTier/EasyTier
某组网工具 A2024.7 月版本

待测:

  • WireGuard
  • TailScale
  • ZeroTier

X86

机器型号阿里云 ecs.ic5.2xlarge
vCPU8 vCPU
RAM8G
CPU 型号Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
操作系统Ubuntu 22.04 64位

测试结果

软件测试项目性能 ( 无 -R / 带 -R ) Gbit/s
LoopBack 设备28.3 / 28.3
EasyTierUDP 无加密1.43 / 1.46
EasyTierUDP AES-128-GCM1.36 / 1.37
EasyTierTCP 无加密1.31 / 1.41
EasyTierTCP AES-128-GCM1.42 / 1.41
某组网工具 AUDP 无加密1.10 / 1.11
某组网工具 AUDP AES-128-GCM0.93 / 0.98

复现方式

基础准备

测试基于 Linux 的网络命名空间功能,使用 Ubuntu 虚拟机、物理机、 Docker 容器等都可以完成测试。

初始化命令(root 权限执行)

bash
apt update
apt install iperf3 iptables -y

ip netns add red
ip netns add green
ip link add br0 type bridge
ip link set br0 up
ip addr add 192.168.0.1/16 dev br0

ip link add vethcab0 type veth peer name red0
ip link set vethcab0 master br0
ip link set red0 netns red
ip netns exec red ip link set lo up
ip netns exec red ip link set red0 up
ip netns exec red ip addr add 192.168.0.2/16 dev red0
ip netns exec red ip route add default via 192.168.0.1
ip link set vethcab0 up

ip link add vethcab1 type veth peer name green0
ip link set vethcab1 master br0
ip link set green0 netns green
ip netns exec green ip link set lo up
ip netns exec green ip link set green0 up
ip netns exec green ip addr add 192.168.0.3/16 dev green0
ip netns exec green ip route add default via 192.168.0.1
ip link set vethcab1 up

sysctl net.ipv4.ip_forward=1
sysctl net.bridge.bridge-nf-call-iptables=0
sysctl net.bridge.bridge-nf-call-ip6tables=0
sysctl net.ipv6.conf.lo.disable_ipv6=0

# 注: EasyTier 不依赖公网服务,可以不配置 iptables 转发
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -i eht0 -j ACCEPT
iptables --policy FORWARD ACCEPT

nohup ip netns exec red iperf3 -s &

另外需要确保待测试的程序在 PATH 环境变量中

下面的 iperf3 未带 -R,实际测试时会测得带 -R 的数据。

LoopBack

bash
ip netns exec green iperf3 -c 192.168.0.2

EasyTier

UDP 不带加密:

bash
ip netns exec red easytier-core -i 10.126.126.2 --multi-thread -u
ip netns exec green easytier-core -i 10.126.126.3 -p udp://192.168.0.2:11010 --multi-thread -u
ip netns exec green iperf3 -c 10.126.126.2

UDP 加密:

bash
ip netns exec red easytier-core -i 10.126.126.2 --multi-thread
ip netns exec green easytier-core -i 10.126.126.3 -p udp://192.168.0.2:11010 --multi-thread
ip netns exec green iperf3 -c 10.126.126.2

TCP 不带加密

bash
ip netns exec red easytier-core -i 10.126.126.2 --multi-thread -u
ip netns exec green easytier-core -i 10.126.126.3 -p tcp://192.168.0.2:11010 --multi-thread -u
ip netns exec green iperf3 -c 10.126.126.2

TCP 加密

bash
ip netns exec red easytier-core -i 10.126.126.2 --multi-thread
ip netns exec green easytier-core -i 10.126.126.3 -p tcp://192.168.0.2:11010 --multi-thread
ip netns exec green iperf3 -c 10.126.126.2

某组网工具 A

UDP 无加密

bash
ip netns exec red xxx -k iperf -s 8.134.146.7:29872 --ip 10.26.0.2
ip netns exec green xxx -k iperf -s 8.134.146.7:29872 --ip 10.26.0.3
ip netns exec green iperf3 -c 10.26.0.2

UDP 带加密

bash
ip netns exec red xxx -k iperf -s 8.134.146.7:29872 -w 1234 --ip 10.26.0.2
ip netns exec green xxx -k iperf -s 8.134.146.7:29872 -w 1234 --ip 10.26.0.3
ip netns exec green iperf3 -c 10.26.0.2

基于 Apache License 2.0 许可发布