7
9月
2021
16:02

使用 SSH 和 iPerf 测试数据传输速度

7 9月 2021 16:02

检查互联网或本地网络速度的一种简单方法是使用 iPerf 命令。

简介

Linux 中有三种速度测试程序 - iPerf(端口 5001)和 iPerf3(端口 5201)。
本文讨论了第一个 iPerf 程序,但您可以将这些指令应用到 iPerf3 程序,将端口号 5001 替换为 5201,也能获得同样的成功。

行动计划

  1. 通过为 iPerf 服务器添加允许规则来在服务器上设置防火墙
  2. 配置端口转发(对于本地网络,我们跳过)
  3. 在客户端安装iperf
  4. 通过 SSH 连接到服务器
  5. 启动iperf服务器
  6. 从客户端执行数据传输速度测试

步骤 1. 允许端口 5001 进行速度测试

我们在服务器上配置防火墙:

sudo ufw allow 5001

其中 5001 是 iPerf 服务的默认端口。

步骤 2. 端口转发

对于本地网络或 VPN,我跳过转发点到端口 5001。

对于互联网,您需要在路由器上打开并转发 2 个秘密端口:
1) 通过 SSH 控制 PC(转发到服务器端口 22)- 端口号 22334。
2) 用于速度测试(默认转发到 iPerf 服务器的端口 5001)- 端口号 12345。

步骤 3. 安装 iPerf 客户端/服务器

在台式计算机(Ubuntu Linux 服务器)和客户端(运行 MX Linux 的上网本)上,我运行了相同的命令:

sudo apt-get install iperf

步骤 4. 通过 SSH 连接到服务器

在本地网络上:

ssh user@192.168.1.8 -p 22334

如果从外部:

ssh user@123.45.67.89 -p 22334

其中:user 是服务器上的用户名,123.45.67.8 替换为 Internet 上 SSH 服务器的 IP 地址(“白色”IP 地址),22334 是通过 SSH 进行管理的秘密端口。

我输入密码并进入服务器控制台。

步骤 5. 启动 iPerf 服务器

通过服务器上的 SSH 会话,我使用“-s”键启动了该程序

iperf -s

我让 ssh 会话保持运行状态。 本地网络上的服务器 IP 地址是静态的 - 192.168.1.8。

步骤 6. 在本地网络中使用 iPerf 测试数据传输速度

在客户端上启动了另一个终端实例(窗口)。

在本地网络上的客户端上,我运行了以下命令:

iperf -c 192.168.1.8 -n 10M

其中192.168.1.8是本地网络服务器的IP地址,10M是用于测量速度的数据包大小,
默认端口为5001。

或者,如果使用 iperf3,则命令为:

iperf3 -c 192.168.1.8 -n 10M

结果:

$ iperf -c 192.168.1.8 -n 10M

Client connecting to 192.168.1.8 TCP port 5001

TCP window size: 110 KByte (default)

------------------------------------------------

[ 1] local 192.168.1.101 port 49772 connected with 192.168.1.8 port 5001

[ ID] Interval Transfer Bandwidth

[ 1] 0.0000-1.1685 sec 10.0 MBytes 71.8 Mbits/sec

步骤 7. 使用 iPerf 从本地网络外部测量速度

服务器端保持不变:

iperf -s

客户端部分:使用“白色”IP 地址(123.45.67.8)和“-p”键(转发到 iPerf 服务器的端口号)调用命令。

iperf -c 123.45.67.8 -p 12345  -n 10M

结果:

了解如何测量两点之间的速度。

以后由于设置已完成,所以只需执行步骤4、5、7即可测量速度。

iperf 和 iperf3 之间的区别

这些程序是在不同时间编写的。
iperf3是第一个5001端口,最新的iperf3是5201端口。

iperf3 作为服务

systemd(Linux中的服务初始化和管理子系统)中的iPerf3可以作为服务启动:

systemctl enable --now operf3.service

执行指定命令后,指定的iperf3服务将被启用并立即启动。
您可以使用以下命令查看服务的状态

systemctl status iperf3.service

如上所述,通过iperf3协议连接的外部端口是5201/TCP。
如果 iperf3.service 服务正在运行,则无需执行启动 iperf3 服务器的“iperf3 -s”命令,因为运行 iperf3.service 服务的计算机在从另一台客户端计算机执行该命令时始终响应对端口 5201 的请求 iperf3 -c ip_адрес_сервера -n 10M

最后更改:2022 年 8 月 21 日



相关出版物