iPerf3 是一款用于测试网络性能的工具,它能够帮助用户了解 Mac 所使用的网络的实际表现。以下是如何在 macOS 终端中使用它的方法。
iPerf 是一款由美国伊利诺伊大学国家超级计算应用中心(NCSA)开发的工具,主要用于测量网络吞吐量、带宽以及内存性能。它最早是基于 1983 年由美国陆军弹道研究实验室为 DARPA 开发的 Test TCP(ttcp)程序重写而成的。iPerf 有多个版本,目前最新的版本是 iPerf3,它在 2014 年首次发布,并且提供了开发者库,方便其他程序调用。与早期版本不同,iPerf3 是单线程的,而早期版本是多线程的。多线程技术可以让计算机在多核 CPU 上同时运行多个代码路径,从而提升性能。
iPerf3 的开发工作由美国能源部的能源科学网络(ESN)和劳伦斯利弗莫尔实验室(Lawrence Livermore Laboratory)共同完成,目的是进一步提升工具的性能。ESN 负责连接全球多个研究和商业实验室。iPerf3 的源代码可以在 GitHub 的 esnet/iperf 页面找到(GitHub)。由 Robert McMahon 编写的原始 iPerf2 代码可以在 Sourceforge 找到(Sourceforge)。此外,SourceForge 上还有一个非常详细的 iPerf2 与 iPerf3 对比表,供用户参考。
iPerf3 是一款内存到内存的测量工具,但它的主要用途是测量网络和路由器的性能,甚至可以用于测试存储设备的性能。与 iPerf2 不同,iPerf3 还支持 JSON 格式的输出。所有 iPerf 版本都需要服务器和客户端组件来进行测试,iPerf3 使用 TCP 和 UDP(无连接)协议进行测试和通信。尽管 iPerf3 不兼容早期版本,但它的命令与 iPerf2 非常相似。ESN 提供了一个 iPerf2/iPerf3 命令对照表,方便用户快速上手。此外,ESN 还提供了一个对比表,总结了不同工具之间的选项差异,并且有一个 macOS 调优页面,帮助用户优化网络和设置以更好地使用 iPerf3。
iPerf3 的主要用途是测量系统之间的内存性能、网络连接、带宽、磁盘性能以及网络吞吐量。
在 macOS 上安装 iPerf3
macOS 系统默认不包含 iPerf3,但安装过程非常简单。最方便的方法是通过 Homebrew 包管理器安装。Homebrew 是一款流行的 macOS 软件包管理工具,它可以帮助用户快速安装和管理各种软件。安装 Homebrew 后,打开位于启动磁盘的 /Applications 文件夹中的 Apple 终端应用程序,并输入以下命令:
brew install iperf3,然后按下回车键。
安装过程中,Homebrew 会自动安装一些依赖包,包括 cfnctl、comrak、gauth、ggh、hcledit、ramalama 和 yices2。这些依赖包的具体信息可以在它们各自的 Homebrew 公式页面上查看。安装完成后,用户可以在终端中输入 iperf3 -v 来检查已安装的 iPerf3 版本。
在 macOS 终端中运行 iPerf3
iPerf3 提供了丰富的命令选项,但最简单的命令是:
iperf3 -c remotehost
其中,“remotehost” 是用户想要连接的服务器的 IP 地址或名称。需要注意的是,目标计算机上必须运行并监听 iPerf3 服务器组件。-c 选项表示以客户端模式运行,并连接到指定的服务器。如果需要使用 UDP 而不是 TCP 连接到远程计算机,可以在命令中加入 -u 选项,例如:
iperf3 -c -u remotehost
iPerf3 的其他命令选项还包括:
-p(指定端口号)
-f(速度标签格式)
-i(时间间隔,以秒为单位)
-B(绑定到特定网络接口)
-V(详细输出)
-J(JSON 格式输出)
-l(日志文件输出)
-d(调试模式)
-h(显示帮助信息)
如果用户需要运行自己的 iPerf3 服务器,可以使用 -s 或 -D(守护进程模式)标志来启动服务器。在服务器模式下,还可以通过 --authorized-users-path 标志设置允许访问的用户列表。默认情况下,iPerf3 服务器在 TCP 端口 5201 上监听来自客户端的连接。如果需要更改端口,可以使用 -p 标志后跟一个空格,然后输入新的端口号。例如:
iperf3 -s -p 5002
此命令将启动 iPerf3 服务器,并在端口 5002 上监听客户端请求。使用非标准端口可以创建一个私有服务器,同时也有助于保护服务器免受恶意攻击者的入侵,因为这些攻击者通常会针对标准端口进行攻击。
要查看 iPerf3 的完整命令选项列表,可以在终端中输入 man iperf3,然后按下回车键。
运行测试后,iPerf3 会在终端中显示测试结果。每行测试结果会显示测试间隔(以秒为单位的延迟)、数据量以及总吞吐量。如果使用了 UDP(-u)选项,测试结果还会显示数据包丢失情况。要停止测试,可以按下键盘上的 Command+Z 或 q。
iPerf3 的测试结果可以帮助用户快速了解网络的实际性能,无论是用于日常网络测试还是专业场景,都非常方便。此外,iPerf3 的开发页面提供了更多技术细节和更新信息。法国的 iperf.fr 网站也提供了大量有用信息,包括测试服务器列表。一个专门的免费 iPerf3 测试服务器列表可以在 iPerf3 Server List 页面找到,但有时该网站可能因访问量过大而无法访问。如果需要更多网络工具,可以尝试 NetPipe。iPerf3 的安装和使用都非常简单,下次当你需要快速测试网络带宽时,一定会觉得它不可或缺。