Linux中tcpdump的编译和使用

1. 介绍

tcpdump是一款用来截取网络数据的工具
这里主要介绍的是为嵌入式Linux编译tcpdump的方法

2. 编译

首先去官网下载源代码, 需要下载tcpdump和libpcap, 将他们解压到同一个目录下~/tcpdump/papage/

2.1 编译libpcap

进入libpcap源码所在目录, 执行如下命令

./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc --with-pcap=linuxmake; make install

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

编译成功后会在~/tcpdump/tools目录下生成三个个文件夹bin, include和lib
里面包含了libpcap的头文件, 库及配置信息

2.2 编译tcpdump

进入tcpdump源码所在目录, 执行如下命令

./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc ac_cv_linux_vers=2make; make install

编译完成后会在~/tcpdump/tools/sbin目录下找到独立的可执行文件tcpdump

这里需要说明的是CC参数指定了交叉编译器, 编译两者时需要指定相同的目录, 否则在编译tcpdump时需要指定libpcap的路径

3. tcpdump命令

tcpdump有如下常用命令

tcpdump -D:                       显示所有支持截取的设备tcpdump -i eth0 -w capture.pcap:  截取eth0接口的数据并保存至capture.pcap(可用wireshark查看)

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

4. tcpdump截取usb数据

除了网络数据包, tcpdump还可以截取usb数据
前提是系统中支持usbmon, 参考<CentOS 7下Wireshark捕获USB数据包>

通过如下命令安装usbmon模块

modprobe usbmon(如果已经编译进内核该步骤则不需要)mount -t debugfs none /sys/kernel/debugls /sys/kernel/debug/usb/usbmon./tcpdump -i usbmon1 -w usb.pcap

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

参考:
<man tcpdump>

时间: 2024-11-04 10:51:37

Linux中tcpdump的编译和使用的相关文章

linux中安装hexo编译博客

title: linux中安装hexo编译博客 categories: 运维 date: 2019-10-29 01:41:10 tags: linux toc: true --- 背景 几天前就看到服务器要到期了,没去管他,结果给忘了,今天凌晨过期了,这台阿里云华东2(上海)的机器也用了快2年了,物理位置在上海让我这个强迫症很不舒服,而且40G的盘都用了30G了(反正就是给自己各种不嫌麻烦的借口),看到新出的学生机有可以购买在华东1(杭州)就果断释放了原来的服务器,新购于杭州节点 之前用宝塔做

Linux中 cmake-3.x 编译安装以及man page添加

首先回顾一下 cmake-2.x 的编译安装. ================ cmake-2.x编译安装说明 ================编译安装的命令: ./bootstrap --prefix=安装目录(默认为/usr/local) make make install(根据安装目录的不同,可能需要root权限) 执行脚本文件bootstrap时加上参数"--qt-gui",可编译生成GUI版cmake程序. 编译.安装完成后,编辑文件 /etc/profile ,将&quo

linux中使用VIM编译C++程序

Vi三种模式详解 命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式:我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下.  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档.此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作.但需注意的是,所输入的命令并不在屏幕上显示出来.若输入的字符不是Vi的合法

linux中codeblocks程序编译运行后不出现控制台窗口

系统: CentOS 6.4 CodeBlocks 13.12 64bit 现象: 在codeblocks中新建了一个控制台程序,是最简单的“Hello,world”,但是程序编译后,点击运行按钮时不出现控制台窗口,但是在linux终端下,跳转到程序目录,就可以执行编译的程序. 错误:process terminated with status 255 解决: yum install xterm

举例讲解Linux中tcpdump工具的应用

先来看一个比较基本的用法: tcpdump -i eth0 其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦. tcpdump的具体参数及意义: -i:指定tcpdump监听的网络接口 -s:指定要监听数据包的长度 -c:指定要监听的数据包数量,达到指定数量后自动停止抓包 -w:指定将监听到的数据包写入文件中保存 -A:指定将每个监听到的数据包以ACSII可见字符打印 -n:指定将每个监听到数据包中的域名转换成IP地址后显示 -nn:指定将每个监听到的数据包中的域名转换成IP.端口从

Linux中的gcc编译

一.整体大纲 二.gcc编译的四个阶段 原文地址:https://www.cnblogs.com/xuejiale/p/10788311.html

如何在linux中从源代码编译安装nodejs?

$ sudo yum groupinstall 'Development Tools'$ wget http://nodejs.org/dist/node-latest.tar.gz$ tar xvfvz node-latest.tar.gz$ cd node-v0.10.21 (replace a version with your own)$ ./configure$ make$ sudo make install

Linux 中 Python 安装 (https://www.bilibili.com/video/av22957476/?p=59)

下载——解包——运行configure添加编译参数——编译——安装 Linux中下载安装编译软件(gcc,glibc) Linux root上  写命令: yum  install gcc-* glibc-* -y         安装编译软件 Linux中下载安装开发工具 Linux root上  写命令: yum  groupinstall ‘开发工具’ -y 官网找到安装版本的python源码  复制地址 https://------- Linux root上  写命令: wget htt

linux中编译安装Apache、PHP、MySQL(上)

1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apache可以安装到2.4版本,而PHP最高安装版本只能是5.4,这也是yum安装PHP的软肋,因此我这里主要涉及到的安装方式是源码安装.通过源码安装能够更好的管理这些软件,想安装到哪就放在哪. 云服务器: 阿里云CentOS 7.2 64位 阿帕奇版本:apache2.4 PHP版本:PHP5.6 主要的