【网络抓包工具】tcpdump 最新版本移植到开发板(海思平台)

news2025/1/20 3:45:54

目录
一、概述
二、libpcap、tcpdump源码下载
三、libpcap、tcpdump交叉编译
 👉3.1 交叉编译 libpcap
 👉3.2 交叉编译 tcpdump


在这里插入图片描述

一、概述

tcpdump是一个功能强大的,用于抓取网络数据包的命令行工具,与带界面的Wireshark一样,基于libpcap库构建。

tcpdump的设计目标是帮你分析包头(比如Tcp包头,udp包头),同时你可以根据包头,用它支持的表达式,过渡出你感兴趣的包(支持网络层、协议、主机端口的过滤),从而方便你自己处理包中数据。tcpdump没有界面,所以,一般都使用tcpdump抓包然后使用wireshark工具分析;
在这里插入图片描述

在这里插入图片描述

二、libpcap、tcpdump源码下载

libpcap库是一个用于网络流量捕获的可移植C/C++库。tcpdump 是基于libpcap库构建的,所以编译时同时下载这两份源码。这两个库的源码都可以在tcpdump官网进行下载。

tcpdump官网地址:https://www.tcpdump.org/
进入官网,滚动鼠标往下滑,找到LATEST RELEASES字样,就是最新的稳定发布版,点击下载。
在这里插入图片描述

在这里插入图片描述

三、libpcap、tcpdump交叉编译

源码下载后,在Ubuntu系统(其他Linux系统也一样)的新建个文件夹tcpdump,将两份源码放进去,并执行下面两个命令解压缩:

tar zxvf libpcap-1.10.4.tar.gz 
tar zxvf tcpdump-4.99.4.tar.gz

在这里插入图片描述

👉3.1 交叉编译 libpcap

进入libpcap-1.10.4/目录,执行下面命令进行交叉编译配置

CC=arm-hisiv300-linux-gcc ./configure --prefix=`pwd`/result_compile --host=arm-hisiv300-linux --disable-shared

CC=arm-hisiv300-linux-gcc:指定编译器
–prefix=`pwd`/result_compile:指定安装目录是当前的 result_compile 目录
–host=arm-hisiv300-linux:指定编译后要执行的主机类型
–disable-shared:禁止编译动态库

如果遇到报错:configure: error: Neither flex nor lex was found.
解决方法:安装 flex 和 bison,在Ubuntu执行sudo apt-get install flex bison

./configure 执行通过之后,会在当前目录生成Makefile,直接make && make install 即可,安装完成后,会在当前目录生成result_compile 目录,执行ls result_compile/lib/,可以看到libpcap.a,说明编译完成。

$ ls result_compile/lib/
libpcap.a  pkgconfig

👉3.2 交叉编译 tcpdump

进入tcpdump-4.99.4/目录,执行下面命令进行交叉编译配置

CC=arm-hisiv300-linux-gcc ./configure --prefix=`pwd`/result_compile --host=arm-hisiv300-linux

如果tcpdump-4.99.4/libpcap-1.10.4/在同一目录下,配置时,会自动找到libpcap的库和头文件,如果不在同个目录,会报错checking for local pcap library... not found,这时需要使用CFLAGSLDFLAGS 告知libpcap的头文件和库的路径:

CC=arm-hisiv300-linux-gcc ./configure --prefix=`pwd`/result_compile --host=arm-hisiv300-linux CFLAGS="-I../lib9999/result_compile/include/" LDFLAGS="-L../lib9999/result_compile/lib/"

配置完成后,执行 make && make install,编译成功后,会在当前目录生成result_compile 目录,执行ls result_compile/bin/ -l可以看到可执行文件tcpdump,复制到开发板即可。

$ ls result_compile/bin/ -l
total 4208
-rwxr-xr-x 1 lu lu 2153540 Apr 27 21:54 tcpdump
-rwxr-xr-x 1 lu lu 2153540 Apr 27 21:54 tcpdump.4.99.4

在这里插入图片描述

如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/469335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CLion开发工具 | 02 - 常用功能配置介绍

专栏介绍 配置项概览 CLion有非常多的配置项,本文将列举一些常用的配置项。 一、外观配置 1. 主题 2. 新UI 新的UI有点VScode化,个人不太喜欢,还是老的这套UI香,所以未开启: 3. 环境变量 IDE除了导入系统/用户的…

应急管理指挥中心大数据信息化管控平台建设方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 篇幅有限,无法完全展示,喜欢资料可转发评论,私信了解更多信息。

力扣刷题2023-04-27-1——题目:1329. 将矩阵按对角线排序

题目: 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2] 。 …

宝塔防火墙拦截页面代码模板2

宝塔防火墙拦截页面代码模板2 防火墙代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>云防御<…

最优化方法Python计算:一元函数搜索算法——黄金分割法

黄金分割法是包围策略的经典用例。算法思路为&#xff1a;假定目标函数 f ( x ) f(x) f(x)最优解 x 0 x_0 x0​含于长度为 λ \lambda λ的区间 ( a 0 , b 0 ) (a_0,b_0) (a0​,b0​)内。在区间内插入两个备选点 a 1 ′ , b 1 ′ ∈ ( a 0 , b 0 ) a_1,b_1\in(a_0,b_0) a1′​,…

【网络编程】网络基础

目录 一、协议分层 1、为什么要分层 2、OSI七层模型 3、TCP/IP四层协议&#xff08;五层协议&#xff09; 二、网络传输流程 1、同一个网段内的两台主机进行文件传输 2、跨网段的主机的文件传输 三、IP地址和MAC地址 1、IP地址 2、MAC地址 网络通信的本质就是跨主机的…

Python 输出日志 print 函数的应用(python专栏001)

在Python中&#xff0c;print()函数是一个用于输出内容到标准输出设备的函数&#xff0c;通常用于调试程序和显示程序运行结果 直接使用如下&#xff1a; print(5) print("早起的年轻人")print()函数可以接受多个参数&#xff0c;将它们用空格隔开&#xff0c;并输…

Docker CE介绍和CentOS7.5.1804离线安装Docker CE

文章目录 Docker CE介绍离线安装问题离线安装步骤Docker CE 的优点 Docker CE介绍 Docker CE&#xff08;CE&#xff0c;Community Edition是社区版本的意思&#xff09;是一个免费、开源的应用容器化平台&#xff0c;可帮助开发人员将应用程序打包成容器&#xff0c;并在任何…

【小白入门Linux】—目录结构介绍(一)

【小白入门Linux】—目录结构介绍&#xff08;一&#xff09; linux的方向&#xff1a; linux运维 linux嵌入式开发 在linux下做各种程序开发 应用领域 个人桌面领域 服务器领域&#xff08;java c程序部署到linux服务器&#xff09; 嵌入式&#xff08;运行稳定&#x…

GRE-MGRE综合实验

拓扑结构&#xff1a; 要求 1、R5为网络运营商&#xff08;ISP&#xff09;&#xff0c;接口IP地址均为公有地址&#xff1b; 2、R1与R5间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b;R2与R5间使用PPP的chap认证&#xff0c;R5为主认证方&#xff1b;R3与R5间使用HD…

操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

进程线程协程区别 定义上 进程&#xff1a;资源分配和拥有的基本单位&#xff0c;是调度的基本单位。运行一个可执行程序会创建一个或者多个进程&#xff1b;进程就是运行起来的程序线程&#xff1a;程序执行基本单位&#xff0c;轻量级进程。每个进程中都有唯一的主线程&…

React之Redux的使用

文章目录 Redux 介绍概述Redux 是什么&#xff1f;为什么要使用 Redux&#xff1f;我什么时候应该使用 Redux&#xff1f;Redux 库和工具React-ReduxRedux ToolkitRedux DevTools 扩展 Redux 术语和概念State 管理不可变性 Immutability术语ActionAction CreatorReducerReducer…

ChatGPT会一直火热下去吗?他会是下一个AR,区块链吗?

目录 前言 VR 热潮 区块链热潮 元宇宙热潮 ChatGPT 热潮 理智看待 ChatGPT 前言 如果在今年年底评选 2023 年的年度科技热词&#xff0c;以 ChatGPT 目前的热度&#xff0c;毫无疑问会是今年排名第一的科技热词。 即使今年才过去四个月&#xff0c;但我很难想象还有什么科…

JUC多并发编程 ThreadLocal

ThreadLocal 提供线程局部变量。这些变量与正常的变量不同, 因为每一个线程在访问 ThreadLocal 实例的时候(通过其 get 或 set 方法) 都有自己的&#xff0c;独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段, 使用它的目的是希望将状态(例如, 用户ID或事务ID)…

【OJ比赛日历】快周末了,不来一场比赛吗? #04.29-05.05 #16场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-04-29&…

SQL学习日记

目录 一、数据定义&#xff08;create&#xff0c;alter&#xff0c;drop&#xff09; 1.1数据类型 1.2定义基本表&#xff08;create&#xff0c;alter&#xff0c;drop&#xff09; 1.3约束 1.3.1主键约束 1.3.2外码约束 ​编辑 补充CASCADE 关键字 1.3.3Check约束 …

自定义类型:结构体

ok&#xff0c;兄弟们&#xff0c;今天来写关于自定义类型的博客&#xff0c;先来看结构体。 结构体 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构体类型的声明 struct tag {member-list; }variable-list; 以上就是结构…

学习 Python 之 Pygame 开发魂斗罗(十六)

学习 Python 之 Pygame 开发魂斗罗&#xff08;十六&#xff09; 完成最终的魂斗罗1. 创建Sound类2. 添加背景音乐3. 添加玩家发射子弹音效4. 增加击中boss要害音效5. 击中敌人音效6. 加入进场动画7. 解决玩家掉出地图死亡问题8. 完善玩家游戏失败函数9. 总结 完成最终的魂斗罗…

道达天际首次亮相军博会,“天网融合”引爆全场

4月23日,第十届中国指挥控制大会暨第八届中国(北京)军事智能技术装备博览会(军博会)落下帷幕。北京道达天际科技股份有限公司(简称道达天际)携DAODAJ2天网情报产品体系首次亮相,全面展示天网融合技术、产品、行业解决方案等成果,最新技术应用备受现场观众瞩目,“天网融合”创新…

性能优化对于Android程序员的重要性,看完你就明白

前言 相信我们都使用过Android手机&#xff0c;然后在使用的过程中经常会遇到手机卡顿&#xff0c;应用闪退&#xff0c;画面不流畅等问题&#xff1b;正因为如此&#xff0c;就导致用户体验非常差&#xff0c;最后选择不再使用Android手机。对此&#xff0c;很多公司对Androi…