Skip to content

Benchmarks

hev edited this page Aug 1, 2025 · 3 revisions

Benchmarks

Summary

Speed

CPU usage

Memory usage

Hardware/Software

CPU: AMD Ryzen 9 7950X 16-Core Processor (Max 5.7GHz)

OS: Arch Linux (Linux 6.15.8)

Iperf3: 3.19.1

Socks5 server

Repo: https://github.com/heiher/hev-socks5-server

Version: 2.9.0

Topology

Namespace host                         Namespace guest
eth0:  192.168.0.8
veth0: 192.168.1.1                     veth1: 192.168.1.2
socks5 server(listen on: 192.168.1.1)  tun2socks(connect to: 192.168.1.1)
iperf3 server(listen on: 192.168.0.8)  iperf3 client(connect to: 192.168.0.8)

MTU

eth0/veth0/veth1: 1500

tun0: 8500

hev-socks5-tunnel

Repo: https://github.com/heiher/hev-socks5-tunnel

Version: 2.13.0

Command:

# Multi-queue on, 6 processes
hev-socks5-tunnel conf/main.yml
tunnel:
  name: tun0
  mtu: 8500
  multi-queue: true
  ipv4: 198.18.0.1
  ipv6: 'fc00::1'

socks5:
  port: 1080
  address: 192.168.1.1
  udp: 'udp'

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  38.1 GBytes  32.8 Gbits/sec    0            sender
[  5]   0.00-10.04  sec  38.1 GBytes  32.6 Gbits/sec                 receiver
CPU usage: 76%
MEM usage: 4.0M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec   132 GBytes   113 Gbits/sec    0             sender
[SUM]   0.00-10.04  sec   132 GBytes   113 Gbits/sec                  receiver
CPU usage: 480%
MEM usage: 24.2M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.04  sec  31.4 GBytes  26.9 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  31.4 GBytes  27.0 Gbits/sec                 receiver
CPU usage: 83%
MEM usage: 4.0M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.04  sec   121 GBytes   104 Gbits/sec    0             sender
[SUM]   0.00-10.00  sec   121 GBytes   104 Gbits/sec                  receiver
CPU usage: 498%
MEM usage: 24.8M

sing-box

Repo: https://github.com/SagerNet/sing-box

Version: 1.11.15

Command:

sing-box -c tun2socks.json run
{
  "inbounds": [
    {
        "type": "tun",
        "address": [
            "198.18.0.1/24"
        ],
        "mtu": 8500,
        "auto_route": false,
        "strict_route": false
    }
  ],
  "outbounds": [
    {
        "type": "socks",
        "tag": "socks-out",
        "server": "192.168.1.1",
        "server_port": 1080,
        "version": "5"
    }
  ]
}

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  30.3 GBytes  26.0 Gbits/sec    0            sender
[  5]   0.00-10.04  sec  30.3 GBytes  25.9 Gbits/sec                 receiver
CPU usage: 161%
MEM usage: 34.3M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  24.2 GBytes  20.7 Gbits/sec  6599            sender
[SUM]   0.00-10.04  sec  24.1 GBytes  20.6 Gbits/sec                  receiver
CPU usage: 155%
MEM usage: 35.8M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.04  sec  26.8 GBytes  22.9 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  26.8 GBytes  23.0 Gbits/sec                 receiver
CPU usage: 147%
MEM usage: 36.1M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.04  sec  19.0 GBytes  16.2 Gbits/sec  4776            sender
[SUM]   0.00-10.00  sec  18.8 GBytes  16.1 Gbits/sec                  receiver
CPU usage: 125%
MEM usage: 37.4M

xjasonlyu-tun2socks

Repo: https://github.com/xjasonlyu/tun2socks

Version: 2.6.0

Command:

tun2socks-linux-amd64 -device tun0 -mtu 8500 -proxy socks5://192.168.1.1:1080

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  17.8 GBytes  15.3 Gbits/sec    0            sender
[  5]   0.00-10.04  sec  17.8 GBytes  15.2 Gbits/sec                 receiver
CPU usage: 163%
MEM usage: 22.1M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  30.0 GBytes  25.8 Gbits/sec  437             sender
[SUM]   0.00-10.04  sec  30.0 GBytes  25.7 Gbits/sec                  receiver
CPU usage: 296%
MEM usage: 32.5M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.04  sec  13.6 GBytes  11.7 Gbits/sec    1            sender
[  5]   0.00-10.00  sec  13.6 GBytes  11.7 Gbits/sec                 receiver
CPU usage: 144%
MEM usage: 25.1M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.04  sec  33.2 GBytes  28.4 Gbits/sec  256             sender
[SUM]   0.00-10.00  sec  33.1 GBytes  28.4 Gbits/sec                  receiver
CPU usage: 511%
MEM usage: 49.1M

go-tun2socks

Repo: https://github.com/eycorsican/go-tun2socks

Version: 1.16.11

Command:

tun2socks-linux-amd64 -proxyServer 192.168.1.1:1080 -tunName tun0 -tunPersist

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  1.90 GBytes  1.64 Gbits/sec    0            sender
[  5]   0.00-10.04  sec  1.90 GBytes  1.63 Gbits/sec                 receiver
CPU usage: 127%
MEM usage: 13.6M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  1.81 GBytes  1.56 Gbits/sec    0             sender
[SUM]   0.00-10.04  sec  1.81 GBytes  1.55 Gbits/sec                  receiver
CPU usage: 131%
MEM usage: 14.4M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.04  sec  6.06 GBytes  5.18 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  6.05 GBytes  5.20 Gbits/sec                 receiver
CPU usage: 135%
MEM usage: 14.1M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.04  sec  6.63 GBytes  5.67 Gbits/sec  1559            sender
[SUM]   0.00-10.00  sec  6.53 GBytes  5.61 Gbits/sec                  receiver
CPU usage: 140%
MEM usage: 16.9M

badvpn-tun2socks

Repo: https://github.com/ambrop72/badvpn

Version: 1.999.130

Command:

badvpn-tun2socks --tundev tun0 --socks-server-addr 192.168.1.1:1080 --netif-ipaddr 198.18.0.1 --netif-netmask 255.255.255.0

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  3.40 GBytes  2.92 Gbits/sec    0            sender
[  5]   0.00-10.04  sec  3.40 GBytes  2.91 Gbits/sec                 receiver
CPU usage: 82%
MEM usage: 2.8M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  2.98 GBytes  2.56 Gbits/sec    0             sender
[SUM]   0.00-10.04  sec  2.98 GBytes  2.55 Gbits/sec                  receiver
CPU usage: 76%
MEM usage: 2.9M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.04  sec  6.01 GBytes  5.14 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  6.01 GBytes  5.16 Gbits/sec                 receiver
CPU usage: 94%
MEM usage: 2.8M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.04  sec  5.79 GBytes  4.95 Gbits/sec  530             sender
[SUM]   0.00-10.00  sec  5.71 GBytes  4.91 Gbits/sec                  receiver
CPU usage: 94%
MEM usage: 3.1M

leaf-tun2socks

Repo: https://github.com/eycorsican/leaf

Version: 0.11.0

Command:

leaf-x86_64-unknown-linux-musl -c tun2socks.json
{
    "inbounds": [
        {
            "protocol": "tun",
            "settings": {
                "name": "tun0",
                "address": "198.18.0.1",
                "netmask": "255.255.255.255",
                "gateway": "198.18.0.1",
                "mtu": 8500,
                "fakeDnsInclude": [
                    "google"
                ]
            },
            "tag": "tun_in"
        }
    ],
    "outbounds": [
        {
            "protocol": "socks",
            "settings": {
                "address": "192.168.1.1",
                "port": 1080
            },
            "tag": "socks_out"
        }
    ]
}

Upload

$ iperf3 -c 192.168.0.8
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  5.16 GBytes  4.43 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  5.16 GBytes  4.43 Gbits/sec                 receiver
CPU usage: 168%
MEM usage: 13.8M
$ iperf3 -c 192.168.0.8 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  4.99 GBytes  4.28 Gbits/sec    0             sender
[SUM]   0.00-10.00  sec  4.98 GBytes  4.28 Gbits/sec                  receiver
CPU usage: 182%
MEM usage: 14.1M

Download

$ iperf3 -c 192.168.0.8 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   0.00-10.00  sec  4.25 GBytes  3.65 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  4.24 GBytes  3.64 Gbits/sec                 receiver
CPU usage: 181%
MEM usage: 14.0M
$ iperf3 -c 192.168.0.8 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec  1.52 GBytes  1.30 Gbits/sec  170             sender
[SUM]   0.00-10.00  sec  1.44 GBytes  1.24 Gbits/sec                  receiver
CPU usage: 242%
MEM usage: 14.3M