【转载】Linux系统利用命令测试两台VPS之间的网络速度,是骡子是马,几行命令拉出来溜溜~

前言

哈喽家人们!今天咱们来聊点实用的东西——如何在 Linux 系统中测试两台 VPS 之间的网络速度。

一般在咱们的日常操作里,大家可能都会用 ping 来测试服务器之间的网络延迟。

PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=60 time=0.854 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=60 time=0.856 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=60 time=0.975 ms
--- 1.1.1.1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5071ms
rtt min/avg/max/mdev = 0.850/0.885/0.975/0.047 ms

Python

确实,ping 是个很方便的小工具,但问题是,延迟只是网络性能的一个小维度而已,真正决定体验的还有带宽和吞吐量!

那么,这时候我们该怎么办呢?别担心,这就给大家介绍一个超棒的工具——iperf3。它不仅可以帮你精准测试网络速度,还非常简单易用。

教程

1.安装

在Linux上安装iperf3是非常简单的,首先我们连接SSH获取root权限,apt安装iperf3。

sudo -i

CSS

apt install iperf3

Undefined

安装中可能会需要我们确认,我们输入y或选择yes同意即可。

安装好后,我们可以通过--help 来获取详细的iperf3帮助。

iperf3 --help

Bash

要注意,两台服务器都要安装哦!


2.启动服务端

首先,我们先挑选一方作为服务端,使用-s启动。

iperf3 -s

Undefined

启动成功后,可以看到启动成功的界面,并告诉你正在监听的端口。

如果没有在安全组或防火墙内放通提示中的端口,或是端口已经被占用,是无法测速的。我这边已经在安全组放通了相应的端口,在这里就不做演示了。


3.客户端测速

接下来,我们来到客户端,并执行以下命令。这里要将1.1.1.1 替换为你的客户端IPv4。

示例:

iperf3 -c 1.1.1.1 -b 0 -n 10G -f M -4

CSS

-c 1.1.1.1 指定的服务器端的IP地址。

-b 0 指定的带宽,0代表跑满宽带。

-n 10G 指定的测试数据包的大小。

-f M 指定显示的单位,M就是Mbits。

-4 指定使用IPv4进行测速。

接下来,客户端会开始给我们返回测速的数据。同时服务端也会显示相应的上传数据。

Connecting to host x.x.x.x, port 5201
[  5] local 192.168.100.22 port 39932 connected to x.x.x.x port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.04   sec  2.86 MBytes  2.74 MBytes/sec    0    164 KBytes       
[  5]   1.04-2.12   sec  1.14 MBytes  1.06 MBytes/sec    0    556 KBytes       
[  5]   2.12-3.00   sec  1.25 MBytes  1.42 MBytes/sec    0   1021 KBytes       
[  5]   3.00-4.03   sec  1.25 MBytes  1.22 MBytes/sec    2   1012 KBytes
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-39.27  sec  27.8 MBytes  0.71 MBytes/sec    2             sender
[  5]   0.00-39.27  sec  0.00 Bytes  0.00 MBytes/sec                  receiver
iperf3: interrupt - the client has terminated

CSS

怎么样?是不是非常简单?快去自己的服务器上测试一下吧!

--help解析

使用方法: iperf3 [-s|-c host] [选项]
         iperf3 [-h|--help] [-v|--version]

服务器或客户端通用选项:
  -p, --port      #         服务器监听或客户端连接的端口号
  -f, --format   [kmgtKMGT] 输出数据单位格式: Kbits, Mbits, Gbits, Tbits
  -i, --interval  #         定期吞吐量报告的时间间隔(秒)
  -F, --file name           指定文件进行发送或接收
  -A, --affinity n/n,m      设置CPU绑定
  -B, --bind      <host>    绑定到与指定地址关联的接口
  -V, --verbose             输出详细信息
  -J, --json                输出为JSON格式
  --logfile f               将输出发送到指定日志文件
  --forceflush              强制每个间隔刷新输出
  -d, --debug               输出调试信息
  -v, --version             显示版本信息并退出
  -h, --help                显示此帮助信息并退出

服务器专用选项:
  -s, --server              启动为服务器模式
  -D, --daemon              将服务器作为守护进程运行
  -I, --pidfile file        写入PID文件
  -1, --one-off             仅处理一个客户端连接然后退出
  --rsa-private-key-path    用于解密认证凭据的RSA私钥路径
  --authorized-users-path   包含用户凭据的配置文件路径

客户端专用选项:
  -c, --client    <host>    启动为客户端模式并连接到<host>
  --sctp                    使用SCTP协议而非TCP
  -X, --xbind <name>        将SCTP关联绑定到链接
  --nstreams      #         SCTP流的数量
  -u, --udp                 使用UDP而非TCP
  --connect-timeout #       控制连接设置超时时间(毫秒)
  -b, --bitrate #[KMG][/#]  目标比特率(0表示无限制)
                            (UDP默认1 Mbit/sec,TCP默认无限制)
                            (可选斜杠加上数据包数量用于突发模式)
  --pacing-timer #[KMG]     设置节奏计时器(微秒,默认1000)
  --fq-rate #[KMG]          启用基于公平队列的套接字节速控制(仅Linux)
  -t, --time      #         发送数据的时间(秒,默认10秒)
  -n, --bytes     #[KMG]    发送数据的字节数(替代-t选项)
  -k, --blockcount #[KMG]   发送数据的块数(替代-t或-n选项)
  -l, --length    #[KMG]    读写缓冲区长度
                            (TCP默认128 KB,UDP动态或1460字节)
  --cport         <port>    绑定到特定客户端端口(TCP和UDP,默认随机端口)
  -P, --parallel  #         并行客户端流的数量
  -R, --reverse             启用反向模式(服务器发送,客户端接收)
  --bidir                   启用双向模式(客户端和服务器都发送和接收数据)
  -w, --window    #[KMG]    设置窗口大小/套接字缓冲区大小
  -C, --congestion <algo>   设置TCP拥塞控制算法(仅限Linux和FreeBSD)
  -M, --set-mss   #         设置TCP/SCTP的最大分段大小(MTU减去40字节)
  -N, --no-delay            禁用Nagle算法(TCP/SCTP无延迟)
  -4, --version4            仅使用IPv4
  -6, --version6            仅使用IPv6
  -S, --tos N               设置IP服务类型值(0-255)
                            支持八进制和十六进制前缀,例如52、064或0x34
  --dscp N or --dscp val    设置IP的DSCP值(0-63或符号值)
                            数值支持十进制、八进制和十六进制(参见--tos)
  -L, --flowlabel N         设置IPv6流标签(仅Linux支持)
  -Z, --zerocopy            使用“零拷贝”方法发送数据
  -O, --omit N              忽略前N秒
  -T, --title str           为每行输出加上指定的字符串前缀
  --extra-data str          在客户端和服务器JSON中包含的数据字符串
  --get-server-output       从服务器获取结果
  --udp-counters-64bit      在UDP测试包中使用64位计数器
  --repeating-payload       使用重复的有效负载模式(如iperf2),而不是随机有效负载
  --username                用于认证的用户名
  --rsa-public-key-path     用于加密认证凭据的RSA公钥路径

[KMG] 表示支持的后缀: K(千)、M(兆)、G(吉)

iperf3主页: https://software.es.net/iperf/
报告问题: https://github.com/esnet/iperf

原文地址 :Linux系统利用命令测试两台VPS之间的网络速度,是骡子是马,几行命令拉出来溜溜~ | Vivi不懂