Openwrt安装iperf3工具测试网络吞吐量带宽

部署完软路由系统后,有个很重要的动作就是测试并调试网络带宽性能。在路由器行业比较常见的网络吞吐量性能测试工具有图形化测试工具IQ ixChariot,以及命令行测试工具iperf。这里在Openwrt端我们以Iperf3为例来展示如何测试网络性能带宽。

一、Openwrt服务器端部署Iperf3工具

进入openwrt后台

#ssh [email protected]

#cd tmp

下载openwrt软件包

#wget http://downloads.openwrt.org/releases/19.07-SNAPSHOT/packages/x86_64/base/iperf3_3.7-1_x86_64.ipk

安装iperf3

#opkg install iperf3_3.7-1_x86_64.ipk

 

二、客户端部署iperf3工具

这里以Mac OS客户端为例,其他Linux客户端和Windows客户端请自行在网上搜索之。

安装Homebrew 包管理器

#/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

安装iperf3

#brew install iperf3

 

三、启动测试流程

1.服务器端启动iperf进程

# iperf3 -s  //临时开启进行,可以实时显示吞吐量

# iperf3 -s -D //开启后台常驻进程

 

2. 客户端开启测试

#iperf3 -c 192.168.1.10  //单线程TCP测试,这里的IP地址填你的openwrt路由器

#iperf3 -c 192.168.1.10  -b 1000m -t 300 -i 1 -u -P 2 #多线程UDP测速

 

四、观看测试结果

1. 服务器端开启iperf3 -s 后,可以实时监听测试结果,如下图

同时在Openwrt的系统实时监测图形化界面也可以看到测试结果

 

2. 客户端测试完成后,会显示测试结果

#iperf3 -c 192.168.1.10 -t 30  //测试30s

 

iperf命令参数解析

#[email protected]:~# iperf3 -h

Usage: iperf3 [-s|-c host] [options]

           iperf3 [-h|–help] [-v|–version]

Server or Client:

  -p, –port      #                      server port to listen on/connect to

  -f, –format   [kmgtKMGT]      format to report: Kbits, Mbits, Gbits, Tbits

  -i, –interval  #                       seconds between periodic throughput reports

  -F, –file name                       xmit/recv the specified file

  -A, –affinity n/n,m                 set CPU affinity

  -B, –bind      <host>              bind to the interface associated with the address <host>

  -V, –verbose                         more detailed output

  -J, –json                               output in JSON format

  –logfile f                               send output to a log file

  –forceflush                           force flushing output at every interval

  -d, –debug                           emit debugging output

  -v, –version                          show version information and quit

  -h, –help                              show this message and quit

Server specific:

  -s, –server                           run in server mode

  -D, –daemon                        run the server as a daemon

  -I, –pidfile file                       write PID file

  -1, –one-off                          handle one client connection then exit

Client specific:

  -c, –client    <host>               run in client mode, connecting to <host>

  -u, –udp                               use UDP rather than TCP

  –connect-timeout #               timeout for control connection setup (ms)

  -b, –bitrate #[KMG][/#]          target bitrate in bits/sec (0 for unlimited)

                                              (default 1 Mbit/sec for UDP, unlimited for TCP)

                                              (optional slash and packet count for burst mode)

  –pacing-timer #[KMG]          set the timing for pacing, in microseconds (default 1000)

  –fq-rate #[KMG]                  enable fair-queuing based socket pacing in

                                              bits/sec (Linux only)

  -t, –time      #                     time in seconds to transmit for (default 10 secs)

  -n, –bytes     #[KMG]           number of bytes to transmit (instead of -t)

  -k, –blockcount #[KMG]       number of blocks (packets) to transmit (instead of -t or -n)

  -l, –length    #[KMG]            length of buffer to read or write

                                             (default 128 KB for TCP, dynamic or 1460 for UDP)

  –cport         <port>              bind to a specific client port (TCP and UDP, default: ephemeral port)

  -P, –parallel  #                    number of parallel client streams to run

  -R, –reverse                        run in reverse mode (server sends, client receives)

  –bidir                                  run in bidirectional mode.

                                             Client and server send and receive data.

  -w, –window    #[KMG]        set window size / socket buffer size

  -C, –congestion <algo>        set TCP congestion control algorithm (Linux and FreeBSD only)

  -M, –set-mss   #                 set TCP/SCTP maximum segment size (MTU – 40 bytes)

  -N, –no-delay                      set TCP/SCTP no delay, disabling Nagle’s Algorithm

  -4, –version4                       only use IPv4

  -6, –version6                       only use IPv6

  -S, –tos N                           set the IP type of service, 0-255.

                                              The usual prefixes for octal and hex can be used,

                                               i.e. 52, 064 and 0x34 all specify the same value.

  –dscp N or –dscp val           set the IP dscp value, either 0-63 or symbolic.

                                               Numeric values can be specified in decimal,

                                               octal and hex (see –tos above).

  -L, –flowlabel N                    set the IPv6 flow label (only supported on Linux)

  -Z, –zerocopy                       use a ‘zero copy’ method of sending data

  -O, –omit N                          omit the first n seconds

  -T, –title str                          prefix every output line with this string

  –extra-data str                     data string to include in client and server JSON

  –get-server-output               get results from server

  –udp-counters-64bit             use 64-bit counters in UDP test packets

  –repeating-payload               use repeating pattern in payload, instead of

                                              randomized payload (like in iperf2)

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

本文由作者 okass 发布在 WirelessLink , 转载请联系客服授权处理,获得授权后请保留文章的完整性并附上原文链接: https://wirelesslink.net/7753.html

We will be happy to hear your thoughts

Leave a reply

error: Content is protected !
WirelessLink
Logo