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
相关推荐
weixin_446260852 小时前
从被动镜像到主动智能体:面向网络物理人工智能的整体论数字孪生(HDT-Net)
网络·人工智能
ZJH__GO2 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
shengnan_wsn4 小时前
【协议】【TCP】
网络·网络协议·tcp/ip
烟雨江南7854 小时前
2026汽车制造与新能源整车柔性产线Agentic-Workflow白皮书:跨APS_MES_ERP多智能体动态排产与装配容错实战
大数据·网络·人工智能·自动化·ai客服·企业agent
小僧景贤5 小时前
CAN调试全套配件+详细实操使用方法(从零排查、步骤落地、现场通用)
网络·can通信·嵌入式通信
迪康Defender6 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
振浩微433射频芯片6 小时前
用TU2303B双向无线模块打通标准化智能家居接入:433MHz方案的落地优势指南
服务器·网络·人工智能
清欢渡---7 小时前
双机热备旁挂组网实验
网络·防火墙·双机热备
zero_70328 小时前
HCIP 课程文字版思维导图笔记
服务器·网络·php
天启HTTP10 小时前
爬虫频繁弹验证码?解析网站反爬检测机制
网络·爬虫·tcp/ip