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
相关推荐
济6171 天前
linux 系统移植(第十七期)---Linux 内核移植(5)-- 修改网络驱动(2)--- Ubuntu20.04
linux·运维·网络
qq_406176141 天前
深入剖析TCP/IP协议:互联网通信的基石
网络
QH139292318801 天前
罗德与施瓦茨 R&S®ZNL6 ZNL20 ZNB8矢量网络分析仪
网络
梦6501 天前
网络传输七层协议
开发语言·网络·php
工业甲酰苯胺1 天前
TCP三次握手与四次挥手:两个“社恐”程序的破冰与告别仪式
网络
googleccsdn1 天前
ENSP Pro LAB笔记:配置M-LAG双归接入三层网络(V-STP + Monitor Link + OSPF)
网络·笔记·网络协议
lifeng43211 天前
2、 网络安全基础 -- 传输层详解 -- DDos攻击
网络·安全·web安全
Y.O.U..1 天前
Kubernetes-网络策略
网络·容器·kubernetes
毅炼1 天前
Netty 常见问题总结
java·网络·数据结构·算法·哈希算法