tcpdump静态编译其他架构版本

这里以mipsbe架构为例,编译tcpdump-4.8.1以及依赖库libpcap-1.8.1(自行搜索官方源码下载哦)

编译环境的ubuntu(windows10 WSL)

这里的编译工具是从openwrt下载的:openwrt-toolchain-22.03.5-malta-be_gcc-11.2.0_musl.Linux-x86_64.tar,假设解压后放在路径~/toolchain/mipsbe_24kc-owrt–musl–gcc-11.2.0

libpcap和tcpdump放同一级目录

编译libpcap

sudo apt install flex bison
./configure CC=~/toolchain/mipsbe_24kc-owrt--musl--gcc-11.2.0/bin/mips-openwrt-linux-gcc  --host=mips-openwrt-linux  --with-pcap=linux
make

静态编译tcpdump,会自动连接同一级目录的libpcap目录里编译好的库文件

./configure CC=~/toolchain/mipsbe_24kc-owrt--musl--gcc-11.2.0/bin/mips-openwrt-linux-gcc  --host=mips-openwrt-linux CFLAGS=-static
make

#瘦身
~/toolchain/mipsbe_24kc-owrt–musl–gcc-11.2.0/bin/mips-openwrt-linux-strip -s tcpdump
#检测是否完全静态编译的,没有依赖库
readelf -a tcpdump|grep NEED

### 使用 `tcpdump` 监控和测量网络吞吐量 为了有效地监控和测量网络吞吐量,可以利用 `tcpdump` 结合其他工具和技术实现这一目标。以下是具体的方法: #### 方法一:使用 `tcpdump` 记录流量并计算吞吐量 可以通过设置过滤器来捕获特定类型的流量,并将其保存到文件中以便后续处理。 ```bash sudo tcpdump -i eth0 -w capture.pcap ``` 此命令会将来自接口 `eth0` 的所有流量写入名为 `capture.pcap` 文件中[^1]。 对于更精确的控制,比如只记录HTTP请求或者仅限于某个IP范围内的通信,则可以在上述基础上增加相应的BPF(Berkeley Packet Filter)表达式作为参数传递给 `-f` 或者直接跟在 `-i` 参数之后。 一旦获得了 `.pcap` 格式的抓包文件后,就可以借助Wireshark这样的图形界面应用程序打开它来进行详细的分析;也可以继续采用命令行的方式统计信息,例如通过 `tcptrace` 工具读取该文件并输出连接摘要报告,其中包含了诸如最大/最小RTT、重传次数以及最重要的——每秒传输了多少字节的信息。 #### 方法二:实时显示吞吐量统计数据 如果希望即时查看当前网络上的活动情况而不必先创建日志再做解析的话,那么可以直接让 `tcpdump` 输出简化后的报文描述而不是完整的十六进制内容,同时配合一些简单的脚本语言如Python或Perl来做进一步加工。 不过最简便的做法还是调用带有内置功能选项版本的新一代嗅探器之一—tshark (即命令行版wireshark),其不仅支持几乎所有的原始数据字段提取而且提供了丰富的聚合函数供用户自定义报表格式: ```bash tshark -i any -qz io,stat,0.5,"ip.addr==192.168.1.1" ``` 这条指令将会每隔半秒钟刷新一次有关源地址为 `192.168.1.1` 的IPv4分组进出数量及其所占带宽比例等指标。 另外值得注意的是,在Linux系统环境下还可以考虑运用基于eBPF技术开发出来的性能诊断利器 —— bcc套件里的 `tcpconnlat` 组件,尽管它的主要用途在于度量三次握手过程中的延迟特性而非实际的数据交换速率,但是当我们将关注点聚焦至新建TCP连接事件上时,间接也能反映出一段时间窗口内新建立起来的服务实例总数目变化趋势从而辅助判断整体负载状况 [^2]. 最后一种方案则是单纯依靠shell自带的功能完成近似效果,即把标准输入输出重定向操作符与进程替换机制结合起来形成管道链路结构,像这样: ```bash pv -bert /dev/tcp/<host>/<port> >/dev/null ``` 这里假设已经建立了通往远程主机 `<host>` 上监听着 `<port>` 号端口的应用程序之间的双向交互通道 `/dev/tcp/<host>/<port>` ,而 `pv` 命令则负责监视经由此路径流动过的全部比特流并向终端反馈进展百分比、累计传送量级及时刻瞬态速度等多项实用资讯 [^4]. 综上所述,虽然 `tcpdump` 自身并不具备直接展示吞吐率的能力,但凭借与其他开源软件的良好兼容性和强大的定制化潜力完全可以满足此类需求.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值