当前位置: 首页 > news >正文

OpenWrt | 使用 Docker 运行 iperf3

文章目录

  • 一、问题背景
  • 二、安装方法

一、问题背景

iperf3 是一套测试网络性能的工具,其可以测试出在两个 IP 之间最大的带宽速率。其官网地址如下:https://software.es.net/iperf/。其可以被安装在 OpenWrt 的系统上,用来测试设备到路由器间内网的最大速率,可以测试 lan 口网络和 wifi 的极限速率以及各种性能,对于调试路由器和分析网络问题时起到极大的帮助,也能推测出通信的性能瓶颈是出自哪里。

iperf3 已经被预置在了 OpenWrt 的官方包中,在编译时可以选择 Network > iperf3,即可在 OpenWrt 运行 iperf3

在这里插入图片描述
iperf3 可能会占用太多的磁盘空间,对于空间小的路由器来说,可能使用 iperf3 会对空间造成压力。因此本文将介绍在 Docker 中运行 iperf3,实现快速复用和减少系统的占用。

不过使用 docker 运行 iperf3 会造成或多或少的内存损耗,对测试结果带来一定的不准确。如果

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。可以实现快速部署大量的应用程序。

参考 OpenWrt 的 [OpenWrt as Docker container host[(https://openwrt.org/docs/guide-user/virtualization/docker_host) 官方教程,只要安装了 luci-app-dockerman luci包,即可在 OpenWrt 上运行 docker
在这里插入图片描述
luci-app-dockerman 包的位置位于:LuCI > 3. Applications > luci-app-dockerman,勾选编译即可。
在这里插入图片描述

由于 Docker 空间占用相对较大,因此需要提前挂载 USB 磁盘才能较好的体验 Docker,参考 OpenWrt 搭建 Samba 服务器的方法:https://openwrt.org/docs/guide-user/services/nas/cifs.server

二、安装方法

本文将使用 networkstatic/iperf3 镜像进行安装:https://hub.docker.com/r/networkstatic/iperf3

首先在 luci 管理界面,Docker > 镜像 > 拉取镜像,输入 networkstatic/iperf3,点击拉取,即可将 networkstatic/iperf3 镜像拉取到本地。

如果因为下载包较大导致下载镜像超时,可以用命令进行安装

docker pull networkstatic/iperf3

随后在 luci 管理界面,Docker > 新增,打开 新增 容器的界面
在这里插入图片描述
为了便于输入,可以使用命令行输入命令的方式,添加容器,参考官方的 Cli

docker run -it --rm --name=iperf3-server --net=host networkstatic/iperf3 -s

这里与官方介绍不一样的地方在于,我们使用了 host 的网络模式,而不是 bridge。因为使用 host 的网络模式可以消除网络隔离,容器与主机共享网络命名空间,此时会带来性能提升,对于 iperf3 性能测试工具来说,使用此模式才能真实反映出性能数据。

最后的 -s 传递的是 iperf3 的命令参数,可以依据官方文档传递相关参数,配置 iperf3 。此处仅传递 -s 表示启动服务端,其默认会占用 5201 端口,等待客户端连接并测试网络性能。

为了便于复用,可以编写 docker-composeyaml 文件,方便在多个设备进行部署:

---
services:iperf3-server:image: networkstatic/iperf3:latestcontainer_name: iperf3-serverhostname: iperf3-serverrestart: unless-stoppednetwork_mode: hostcommand: -s

保存在路由器合适的位置之后,在 OpenWrt 的终端运行如下命令:

docker-compose -f .yml文件 up -d

在添加完成之后,此时点击容器的运行,即可启动 iperf3 服务端。在终端设备中,输入 iperf -c 路由器IP 即可开始测试性能数据。
在这里插入图片描述


文章转载自:
http://aniline.hfstrb.cn
http://billingual.hfstrb.cn
http://baronize.hfstrb.cn
http://ageless.hfstrb.cn
http://aweless.hfstrb.cn
http://astrology.hfstrb.cn
http://autocratically.hfstrb.cn
http://aestival.hfstrb.cn
http://asynchrony.hfstrb.cn
http://bicol.hfstrb.cn
http://allodial.hfstrb.cn
http://chigetai.hfstrb.cn
http://banally.hfstrb.cn
http://ampliative.hfstrb.cn
http://allen.hfstrb.cn
http://benignly.hfstrb.cn
http://atm.hfstrb.cn
http://aciculate.hfstrb.cn
http://carneous.hfstrb.cn
http://bullion.hfstrb.cn
http://appersonation.hfstrb.cn
http://abu.hfstrb.cn
http://academician.hfstrb.cn
http://bluesman.hfstrb.cn
http://brindle.hfstrb.cn
http://blossom.hfstrb.cn
http://attestative.hfstrb.cn
http://bogbean.hfstrb.cn
http://alkyne.hfstrb.cn
http://azc.hfstrb.cn
http://www.dtcms.com/a/263579.html

相关文章:

  • 前后端Dockerfile
  • 2025年 UI 自动化框架使用排行
  • GeoTools 结合 OpenLayers 实现属性查询(二)
  • 嵌入式原理与应用篇---常见基础知识(10)
  • 【软考高项论文】论信息系统项目的进度管理
  • Spring-事务和事务传播机制
  • DFMEA检查表模板下载
  • 简单的 PyTorch 示例,可视化和解释 weight decay 的作用
  • 云上攻防—Docker安全容器逃逸特权模式危险挂载
  • 【C++】简单学——模板初阶
  • tauri v2 开源项目学习(一)
  • PSQL 处理 BLOB 类型数据问题
  • 华为云Flexus+DeepSeek征文 | ​​华为云ModelArts Studio大模型与企业AI会议纪要场景的对接方案
  • 数据库事务全面指南:概念、语法、机制与最佳实践
  • C++ 快速回顾(五)
  • 【冷知识】Spring Boot 配置文件外置
  • SpringBoot -- 自动配置原理
  • Bessel位势方程求解步骤
  • STL简介+string模拟实现
  • 「Java案例」计算矩形面积
  • 大数据(3)-Hive
  • 【算法】动态规划:1137. 第 N 个泰波那契数
  • 初等变换 线性代数
  • C++ STL之string类
  • Windows11系统中安装docker并配置docker镜像到pycharm中
  • EA自动交易完全指南:从策略设计到实盘部署
  • SpringBoot 启动入口深度解析:main方法执行全流程
  • Android Telephony 网络状态中的 NAS 信息
  • 反射,枚举和lambda表达式
  • 《垒球百科》老年俱乐部有哪些项目·垒球1号位