You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中获取特定IP的当前带宽速率?

如何在Bash脚本中获取特定IP的当前带宽速率?

我来帮你搞定这个需求!你已经在用tcptrack查看实时带宽了,其实只要给它加几个参数,就能让它输出适合脚本处理的文本数据;另外还有几个专门适合脚本调用的工具,下面给你逐个说明:

1. 用你熟悉的tcptrack适配脚本

tcptrack默认是交互式界面,但加上-t参数就能切换到文本模式,直接把输出打印到标准输出,这样就能用管道工具提取总带宽数据了。比如针对目标IP 192.168.1.100,可以用这个命令:

tcptrack -i ens3 -t src or dst 192.168.1.100 | awk '/Total/ {print $3, $4}'

这个命令会输出类似1.45 MB/s的总带宽数值,你可以在脚本里直接捕获这个结果,或者进一步处理成纯数字(比如去掉单位)。

2. 用iftop更灵活地获取收发速率

iftop是另一个常用的流量监控工具,天生支持文本模式输出,还能单独提取特定IP的发送/接收带宽。比如采样1秒后输出目标IP的流量数据:

iftop -i ens3 -t -s 1 -n | awk '/192.168.1.100/ {print "发送速率:", $6, "接收速率:", $8}'

参数说明:

  • -t:文本模式,不启动交互界面
  • -s 1:采样1秒后自动退出
  • -n:不解析域名,直接显示IP,避免延迟
    执行后会得到类似发送速率: 987 KB/s 接收速率: 1.2 MB/s的结果,非常适合脚本里做统计或判断。

3. 用bmon输出结构化数据(可选)

如果需要更结构化的输出格式方便脚本解析,可以试试bmon。它支持输出机器可读的格式,比如:

bmon -p ens3 -o format:'fmt:rxrate:%R,txrate:%T' | grep -A1 192.168.1.100

这个命令会输出目标IP的接收(rxrate)和发送(txrate)速率,格式规整,适合复杂脚本处理。

备注:内容来源于stack exchange,提问作者pirojnoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:43:10