tcpdump 命令行抓包工具

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3898248.html

概述

tcpdump命令是Linux中的截包命令工具,强大且易于使用。tcpdump基于底层libpcap库开发,运行需要root权限。

基本使用与命令选项

例:截获主机收到和发出的所有数据包。

命令:tcpdump

说明:

tcpdump截取包默认显示数据包的头部。

基础格式:时间 数据包类型 源IP 端口/协议 > 目标IP 端口/协议 协议详细信息

按下Ctrl+C会终止tcpdump命令。且会在结尾处生成统计信息。

选项查看

命令:tcpdump --h

tcpdump version 4.1-PRE-CVS_2012_03_26  表示工具版本。

libpcap version 1.4.0    表示libpcap的版本。

选项:

-a  将网络地址和广播地址转变成名字;

-c  在收到指定的包的数目后,tcpdump就会停止;

-d  将匹配信息包的代码以人们能够理解的汇编格式给出;以可阅读的格式输出。

-dd  将匹配信息包的代码以c语言程序段的格式给出;

-ddd  将匹配信息包的代码以十进制的形式给出;

-e  在输出行打印出数据链路层的头部信息;

-f  将外部的Internet地址以数字的形式打印出来;

-l  使标准输出变为缓冲行形式;

-n  直接显示IP地址,不现实名称;

-nn  端口名称显示为数字形式,不现实名称;

-t  在输出的每一行不打印时间戳;

-v  输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv  输出详细的报文信息;

-F  从指定的文件中读取表达式,忽略其它的表达式;

-i  指定监听的网络接口;

-r  从指定的文件中读取包(这些包一般通过-w选项产生);

-w  直接将包写入文件中,并不分析和打印出来;

-T  将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议;)

指定抓包数量 -c

指定抓取2个数据包。

命令:tcpdump -c 2

说明:

最后会自动生成统计信息。

将抓包信息写入文件 -w

使用-w选项指定记录文件。

命令:tcpdump -c 10 -w tcpdump_test.log

说明:

保存的文件不是文本格式,不能直接查看。tcpdump保存的文件的格式是几乎所有主流的抓包工具软件都可以读取。所以可以使用更易读的图形界面工具来查看记录文件。

读取记录文件 -r

使用-r选项读取文件。

命令:tcpdump -r tcpdump_test.log

打印出所有可工作的接口 -D

命令:tcpdump -D

其中网卡为eth0与eth1。

指定监控的网卡 -i

命令:tcpdump -i eth0

显示更详细的数据包信息 -v  -vv

选项-v,-vv可以显示更详细的抓包信息。

不使用域名反解 -n

使用-n后,tcpdump会直接显示IP地址,不会显示域名(与netstat命令相似)。

增加抓包时间戳 -tttt选项

使用-tttt选项,抓包结果中将包含抓包日期:

命令:tcpdump -tttt

条件过滤

过滤:指定需要抓取的协议

tcpdump可以只抓某种协议的包,支持指定以下协议:ip,ip6,arp,tcp,udp,wlan等。

命令:

tcpdump udp

tcpdump icmp

tcpdump tcp

tcpdump arp

过滤:指定协议的端口号

使用port参数,用于指定端口号。

命令:tcpdump tcp port 80

使用portrange参数,用于指定端口范围。

命令:tcpdump tcp portrange 1-1024

过滤:指定源与目标

src 表示源。

dst 表示目标。

命令:

tcpdump src port 8080

tcpdump dst port 80

过滤:指定特定主机的消息包

使用host指定需要监听的主机。

命令:tcpdump host 192.168.1.113

注意:若使用了host参数使用了计算机名或域名。例tcpdump host shi-pc ,则无法再使用-n选项。

过滤:指定数据包大小

使用greater(大于)与less(小于)可以指定数据包大小的范围。

例:只抓取大于1000字节的数据包。

命令:tcpdump greater 1000

例:只抓取小于10字节的数据包。

命令:tcpdump less 10

查看数据包完整内容

tcpdump默认不显示数据包的详细内容。

方法一:使用-A参数能以ASCII码显示数据包。

例:只抓取1个数据包,并显示其内容。

命令:tcpdump -c 1 -A

方法二:使用-X参数能16进制数与ASCII码共同显示数据包。

例:只抓取1个数据包,并显示其内容。

命令:tcpdump -c 1 -X

逻辑表达式

使用基本逻辑组合拼装出更精细的过滤条件。

逻辑与关系,使用and。

命令:

tcpdump tcp and host 192.168.1.112

tcpdump tcp and src 192.168.1.112 and port 8080

逻辑或关系,使用or。

命令:

tcpdump host 192.168.1.112 or 192.168.1.113

逻辑非关系,使用not,也可以使用 ! 。

若使用 ! 必须与其后面的字符隔开一个空格。

例:当通过ssh协议远程使用tcpdump时,为了避免ssh的数据包的输出,所以一般需要禁止ssh数据包的输出。

命令:

tcpdump not tcp port 22

tcpdump ! tcp port 22

括号

括号需要使用在引号内,或转意使用。否则会报错。

例:抓取非22端口,且主机为192.168.1.112 和 192.168.1.113的TCP数据包。

命令:

tcpdump not tcp port 22 and host \( 192.168.1.112 or 192.168.1.113\)

tcpdump "not tcp port 22 and host (192.168.1.112 or 192.168.1.113)"

tcpdump not tcp port 22 and host "(192.168.1.112 or 192.168.1.113)"

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3898248.html

tcpdump 命令行抓包工具,布布扣,bubuko.com

时间: 2024-10-08 13:15:32

tcpdump 命令行抓包工具的相关文章

tcpdump命令行抓包(第一篇)

tcpdump可以获取流动在网卡上的数据 tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount

Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wireshark也提供有Linux命令行工具-tshark.tshark不仅有抓包的功能,还带了解析各种协议的能力.下面我们以两个实例来介绍tshark工具.1.安装方法 CentOS: yum install -y wireshark    Ubuntu: apt-get install -y tsha

监控io性能、free、ps命令及netstat命令、抓包工具tcpdump,tshark

一.监控io性能iostat -x 关注%utiliotop 查看哪一个进程在进行读写 二.free命令(查看内存使用)-m -h-gbuff 缓冲(cpu处理完的数据 > 内存 (buff)> 磁盘)cache 缓存(磁盘 >内存(cache) >cpu处理数据)公式:total= used + free +buff/cacheavaliable包含free 和buffer/cache剩余部分我的swap怎么全是0 三.ps命令(查看系统进程)ps aux 把系统所有的进程以快照

Tcpdump抓包工具的使用

# Tcpdump抓包工具的使用 ## 简介 tcpdump是linux下最常用的命令行抓包工具,可以在线安装 ## 安装 - `sudo apt install tcpdump` ## 查看网卡 - `ip addr`查看网卡名称 ## 简单的使用示例 - `sudo tcpdump -i enp032` 抓取指定网卡的数据包,并- `sudo tcpdump -i enp032 -w 28.cap`- `sudo tcpdump -i enp032 host 192.168.112.28 -

iOS系统设备网络抓包工具介绍:越狱和不越狱的办法

对终端进行抓包是客户端测试中的一种重要手段.本文主要介绍了ios设备(iphone.ipad和ipodtouch)的几种常用的抓包方法. 一.准备条件 需要进行抓包的设备必须经过root,俗称越狱,主要利用redsn0w和各种iOSFirmwares进行,如越狱不用更换固件版本,只需使用 redsn0w安装Cydia即可,网上有详细教程,此处省略.安装完毕,在3G或WiFi环境下启动Cydia,确认身份为“开发者”,如下图. 通过Cydia源,用户可以下载和安装比appstore更高权限的软件,

Linux 抓包工具:tcpdump

tcpdump 是一个抓包工具,通常用来分析网络 安装tcpdump命令 [[email protected] test]# yum install -y tcpdump -i 指定网卡 捉取网卡数据包 抓取指定网卡的数据包 [[email protected] test]# tcpdump -nn -i eth0 捉取指定网卡,端口的数据包 [[email protected] test]# tcpdump -nn -i eth0 port 22 捉取指定数量的数据包 -c count 捉10

【讲清楚,说明白!】tcpdump命令行网络抓包工具

目录:(一)tcpdump命令(二)tcpdump筛选 (一)tcpdump命令(1.1)tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类Unix系统下用于网络分析和问题排查的首选工具.tcpdump支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等语句来帮助你去掉无用的信息.(1.2)tcpdump指令默认只抓取每个数据包的前68个字节,通常情况下会将TCP/IP以及二层包头信息会完整抓取的,如果需要做完整的数据包的

tcpdump教程 - 从命令行抓取和分析数据包

前言 在介绍和使用tcpdump之前,请确保您已经掌握或者了解如下几个关键概念,否则后面的内容让你有点痛苦. 能够在Linux命令行下工作 理解OSI七层网络协议的概念 熟悉各层的协议头部,重点是IP/TCP/UDP 交换机和路由器对应于OSI的协议层 另外还需要注意的是: tcpdump是基于Unix系统的命令行式的数据包嗅探工具.如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给

TCPDUMP(命令行操作)-抓包、筛选、高级筛选、过程文档记录

TCPDUMP No-GUI的抓包分析工具 Linux.Unix系统默认安装 TCPdump-–抓包 抓包 默认只抓68个字节 tcpdump -i eth0 -s 0 -w file.pcap tcpdump -i eth0 port 22 读取抓包文件 Tcpdump -r file.pcap 选项介绍 -A 以ASCII格式打印出所有分组,并将链路层的头最小化. -c 在收到指定的数量的分组后,tcpdump就会停止. -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数f