移植tcpdump到arm linux

本文详细介绍了如何成功编译TCPDump,并通过解决编译过程中的错误来提升编译经验。同时,深入探讨了TCPDump的配置方法与实际应用场景,帮助开发者更熟练地运用这一强大的网络抓包工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前已经移植过libpcac库,现在可以tcpdump

1、http://www.tcpdump.org/#latest-release下载tcpdump源码

2、解压:

tar -xf tcpdump-4.6.2.tar.gz

cd tcpdump-4.6.2/

3、配置: 

./configure --host=arm CC=arm-linux-gcc --disable-ipv6

4、编译

make 

编译到最后时报错:

print-enc.o: In function `enc_if_print':
print-enc.c:(.text+0xb8): undefined reference to `ip6_print'


修改方法:

注释掉ip6_print(p, length);这一句

vi print-enc.c

 80     case AF_INET6:
 81         //ip6_print(p, length);
 82         break;
 83     }
 84 
### 安装依赖库 为了能够在ARM架构的Linux系统上成功安装并运行tcpdump,需要先确保目标平台上已经安装了必要的依赖项。通常情况下,这些依赖包可以通过系统的软件源来获取: ```bash sudo apt-get update && sudo apt-get install -y build-essential libpcap-dev ``` 对于某些特定环境可能还需要额外的一些工具和支持库,比如m4宏处理器可以用来处理一些配置脚本中的预定义宏[^4]。 ### 获取源码与编译准备 接下来是从官方渠道或者其他可信站点下载tcpdump及其所需的支持库libpcap的最新稳定版本源代码。这里假设使用的是tarball形式发布的压缩包文件。解压之后进入对应的目录按照下面的方式操作以完成交叉编译前的准备工作[^2]。 #### 下载和编译Libpcap 由于tcpdump高度依赖于libpcap库来进行网络数据捕获功能实现,因此首先应该针对目标平台构建此库: ```bash wget https://github.com/the-tcpdump-group/libpcap/archive/refs/tags/v1.10.5.tar.gz tar xf v1.10.5.tar.gz cd libpcap-1.10.5/ ./autogen.sh ./configure --prefix=$(pwd)/_install --host=aarch64-linux-gnu make -j$(nproc) make install ``` 上述命令序列完成了libpcap库在aarch64 Linux下的定制化编译过程,并将其安装到了当前工作路径下的_install子目录内。 #### 编译Tcpdump本身 有了之前步骤得到的静态链接版libpcap支持后就可以继续tcpdump本身的跨平台编译流程了: ```bash git clone https://github.com/the-tcpdump-group/tcpdump.git cd tcpdump/ export PKG_CONFIG_PATH=$PWD/../libpcap-1.10.5/_install/lib/pkgconfig ./bootstrap ./configure --with-libpcap=../libpcap-1.10.5/_install CFLAGS="-I$PKG_CONFIG_PATH/include" LDFLAGS="-L$PKG_CONFIG_PATH/lib" make -j$(nproc) ``` 这一步骤会生成适用于ARM架构的目标二进制程序(tcpdump),并且该程序被优化为能够利用本地已有的libpcap共享对象或静态库进行加载[^3]。 ### 部署至目标设备 最后一步就是把新创建出来的tcpdump应用程序传输给实际要部署它的远程主机。一种简单的方法是借助SCP协议安全复制文件;另一种则是采用FTP/SFTP客户端如FileZilla将可执行文件放置到指定位置(/bin或其他合适的地方)。 一旦上传完毕,在终端里验证其正常工作的最简便方法莫过于尝试打印帮助信息或者查看版本号: ```bash tcpdump --version ``` 如果一切顺利的话,则说明整个移植过程顺利完成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值