利用tcpdump测试网络流量吞吐

最近通过B站UP主@林哥讲运维学到一个测试网卡流量吞吐的命令

tcpdump -i ens192 -w - | pv -bert >/dev/null

详解一下这条命令:
tcpdump -i ens192 -w -:

tcpdump 是一个用于捕获和分析网络流量的命令行工具。
-i ens192 指定了网络接口ens192,即从这个接口捕获流量。
-w - 指示tcpdump将捕获的数据写入标准输出(- 表示标准输出)。

强大的管道符:|
将 tcpdump 命令的输出传递给 pv 命令。

pv(Pipe Viewer)是一个命令行工具,用于监控数据通过管道传输的速度和进度。
-b 启用字节计数。
-e 显示传输的总字节数。
-r 显示传输速率。
-t 显示经过的时间。

>/dev/null

这部分将 pv 命令的输出重定向到 /dev/null,即丢弃所有输出。
/dev/null 是一个特殊文件,任何写入它的数据都会被丢弃。(老运维应该都知道吧)

通过这个命令,我们测试下wget一个内网NAS的传输速度:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/12de6a9da8a447f38ce2731dd91db0da.png在这里插入图片描述
这里我把这条命令写入.bashrc了,这样可以通过tcpspeed命令直接运行,缺点是不能指定网卡

所以我思路打开,网卡可以通过变量更改啊

让我们看一下ip命令:

[root@localhost ~]# ip -o -4 route
default via 10.1.1.254 dev ens192 proto static metric 100 
10.7.0.0/24 dev tun0 proto kernel scope link src 10.7.0.1 
10.1.1.0/24 dev ens192 proto kernel scope link src 10.1.1.20 metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
172.22.222.0/24 dev safeline-ce proto kernel scope link src 172.22.222.1 
[root@localhost ~]# 

这里我们可以看到我通过ip命令输出的ipv4各个路由
那么我们默认只观察公网流量,即默认路由0.0.0.0/0,如输出的第一行显示:

default via 10.1.1.254 dev ens192 proto static metric 100 

这个输出可以看到dev后面紧跟的就是网卡名称ens192,那么我们可以直接通过awk命令提取这个名称

[root@localhost ~]# ip -o -4 route show to default | awk '{print $5}'
ens192
[root@localhost ~]# 

OK,这样公网网卡也获取到了,剩下的就是写入变量,我们直接写一个speed.sh的脚本:

#!/bin/bash

# 自动获取网卡名称(排除lo回环接口)
INTERFACE=$(ip -o -4 route show to default | awk '{print $5}')

# 检查是否成功获取网卡名称
if [ -z "$INTERFACE" ]; then
    echo "未能获取网卡名称,请检查网络配置。"
    exit 1
fi

echo "使用网卡: $INTERFACE"

# 执行命令
tcpdump -i "$INTERFACE" -w - | pv -bert >/dev/null


保存并退出,别忘了给这个脚本可执行权限:

chmod a+x speed.sh

让我们运行下看看:
在这里插入图片描述
感谢大佬提供的经验,大家喜欢也可以去点点关注@林哥讲运维

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值