tcpdump移植

下载源码

tcpdump依赖于libpcap,所以需要先下载这两个的源代码;

官方地址:https://www.tcpdump.org/

编译libpcap

bash 复制代码
$ cd libpcap-libpcap-1.10.6/
$ mkdir build
$ cd build/
$ ../configure --host=aarch64-openwrt-linux CC=aarch64-openwrt-linux-gcc --prefix=$PWD/install  --without-libnl
$ make && make install

编译tcpdump

bash 复制代码
$ cd tcpdump-tcpdump-4.99.6/
$ mkdir build
$ cd build/
$ ln -s ../../libpcap-libpcap-1.10.6/build/install/ libpcap #将前面编译生成的libpcap相关文件挂载到当前目录
$ ../configure --host=aarch64-openwrt-linux CC=aarch64-openwrt-linux-gcc  CFLAGS="-I./libpcap/include/ -L./libpcap/lib/" --without-crypto
$ make

使用

tcpdumplibpcap.so.1.10.6放到bin目录

bash 复制代码
$ chmod +x tcpdump
$ ln -s libpcap.so.1.10.6 libpcap.so.1
$ tcpdump -h #测试

问题解决

libpcap问题

现象

bash 复制代码
aarch64-openwrt-linux-musl/bin/ld: cannot find -lnl-3

原因:没有libnl库

解决:libnl 是可选依赖,用于高级接口管理(非必需)。去除libnl 依赖,增加--without-libnl

bash 复制代码
../configure --host=aarch64-openwrt-linux CC=aarch64-openwrt-linux-gcc --prefix=$PWD/install --without-libnl

tcpdump问题

现象

bash 复制代码
fatal error: openssl/opensslconf.h: No such file or directory
 # include <openssl/opensslconf.h>

原因:交叉工具链的 OpenSSL 不完整

解决:如果不需要使用加密的一些高级特性,可以直接禁用 OpenSSL。 增加--without-crypto

bash 复制代码
../configure --host=arm-linux CC=aarch64-linux-gnu-gcc  CFLAGS="-I./libpcap/include/ -L./libpcap/lib/" --without-crypto
相关推荐
LCMICRO-133108477462 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
05大叔10 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
我想走路带风11 小时前
c++工具转向网络底层工具
网络
dashizhi201511 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
皙然11 小时前
深入理解TCP流量控制
网络·网络协议·tcp/ip
网教盟人才服务平台11 小时前
2026数字中国创新大赛-数字安全赛道全面启动!
网络·安全
为你奋斗!12 小时前
图形化界面工具 - webUI使用Page Assist 插件
测试工具
woho77889912 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络
CN.LG12 小时前
抓包工具 Wireshark 是什么?
网络·测试工具·wireshark
Crazyong13 小时前
FreeRTOS-任务通知-1
网络