Linux下Tcpdump使用
1. 介绍
tcpdump是一款用来截取网络数据的工具;这里主要介绍的是为嵌入式Linux编译tcpdump的方法
2. 编译
首先去官网下载源代码, 需要下载tcpdump和libpcap, 将他们解压到同一个目录下~/tcpdump/papage/
2.1 libpcap
进入libpcap源码所在目录, 执行如下命令
./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc --with-pcap=linux
make; make install
编译成功后会在~/tcpdump/tools目录下生成三个个文件夹bin, include和lib;里面包含了libpcap的头文件, 库及配置信息
2.2 tcpdump
进入tcpdump源码所在目录, 执行如下命令
./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc ac_cv_linux_vers=2
make; make install
编译完成后会在~/tcpdump/tools/sbin目录下找到独立的可执行文件tcpdump
这里需要说明的是CC参数指定了交叉编译器, 编译两者时需要指定相同的目录, 否则在编译tcpdump时需要指定libpcap的路径
3. 命令
tcpdump有如下常用命令
tcpdump -D: 显示所有支持截取的设备
tcpdump -i eth0 -w capture.pcap: 截取eth0接口的数据并保存至capture.pcap(可用wireshark查看)
tcpdump -i any –w capture.pcap: 截取所有接口的数据并保存至capture.pcap
4. usb截取
除了网络数据包, tcpdump还可以截取usb数据
前提是系统中支持usbmon, 参考<CentOS 7下Wireshark捕获USB数据包>
通过如下命令安装usbmon模块
modprobe usbmon(如果已经编译进内核该步骤则不需要)
mount -t debugfs none /sys/kernel/debug
ls /sys/kernel/debug/usb/usbmon
tcpdump -i usbmon1 -w usb.pcap
参考:
<man tcpdump>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?