tcpdump 介绍
tcpdump 是一款强大的网络抓包工具,dump the traffice on anetwork,对网络上的数据包进行截获的包分析工具。熟练掌握 tcpdump 可以方便我们跟踪解决网络丢包,重传,数据库链路调用等问题。
tcpdump 的语法
Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
tcpdump 主要支持3种类型的表达式:
Type(类型)选项包括 host,net 和 port,缺省为 host
host(缺省类型): 指明一台主机,如:host 10.215.20.13
net: 指定网络地址,net 10.215.20.0
port: 指明端口号,port 3306
Direction(方向)选项包括 src 和 dst 以及它们的组合
确定方向的关键字
dst or src(缺省值) 指定源或者目标地址是 10.215.20.13的流量包
src: src 10.9.51.13, 指定源地址是10.9.51.13
dst: dst net 172.0.0.0, 指定目标网络地址是172.0.0.0
dst and src 比如: src host 10.9.51.13 and dst host 10.215.20.13
Proto(协议)包括 tcp 、udp 、ICMP 和 ah 等
协议的关键字:缺省值是监听所有协议的信息包
ip
arp
tcp
udp
icmp
其他关键字 gateway broadcast less greater
常用表达式:多条件时可以用括号,但是要用转义
参数说明
tcp: 协议类型,用来过滤数据报的协议类型
-i bond0: 只抓取经过接口bond0的包
-tttt: 使用格式 2019-02-02 10:37:37.120297,便于分析
-s 0: 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
-c 100: 只抓取100个数据包
dst port ! 22: 不抓取目标端口是22的数据包
src net 10.10.1.0/24: 数据包的源网络地址为10.10.1.0/24
-w 20190131.tcpdump: 保存成tcpdump文件中,方便使用wireshark分析抓包结果
-D: 列出所有可用的网络接口
-n: 禁用域名解析,让tcpdump直接输出IP地址.
-e: 每行的打印输出中将包括数据包的数据链路层头部信息
-X: 以16进制格式输出数据包的内容,不加该参数,会只输出iptcp/udp头部信息。加上该选项会将整个数据包输出。-vvvv 该参数其实是-v与-vvv的组合。-v会输出稍微详细一点的信息包括校验和ttl之类的;-vvv会尝试解析应用层协议,输出详细信息。二者组合就能完整的详细信息。-A:以ASCII值显示抓到的包,比如和MySQL的交互时,可以通过-A查看包的文本内容.
例子
# 监听指定网络接口的数据包
tcpdump -i eth0
#截获所有的主机收到和发出的所有数据包
tcpdump host 192.168.1.134
#截获主机 192.168.0.212 和主机 192.168.1.134 或 192.168.1.135 的通信
tcpdump host 192.168.0.212 and \(192.168.1.134 or 192.168.1.135 \)
#获取主机 192.168.0.212 除了和主机 192.168.1.134 之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.0.212 and ! 192.168.1.134
#截获主机hostname发送的所有数据
tcpdump -i eth0 src host 127.0.0.1
#监视所有送到主机hostname的数据包
tcpdump -i eth0 dst host 127.0.0.1
#获取主机192.168.1.134接收或发出的telnet包,使用如下命令
tcpdump tcp port 23 and host 192.168.1.134
#对本机的udp 123 端口进行监视 123 为ntp的服务端口
tcpdump udp port 123
# 抓取经过所有eth0,且数据包源网络地址为192.168.1.0/24,不显示时间戳,除了 22 端口,保存为 target.cap
tcpdump tcp -i eth0 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
eg:
[root@localhost ~]# tcpdump -n -s 0 port 80 -c 10 -tttt
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
2019-10-30 11:53:41.838176 IP 192.168.2.177.50241 > 192.168.0.216.http: Flags [.], seq 4068299219:4068299220, ack 755692383, win 8212, length 1: HTTP
第一列是时间: 2019-10-30 11:53:41.838176
第二列 IP是网络协议名称
192.168.2.177.50241 > 192.168.0.216.http 表示 数据包发送的源端十进制地址和接收端的ip地址192.168.2.177和端口号50241。其中 > 表示数据包的流向。
Flags [.] 包的状态标志:S=SYN 发起连接标志;P=PUSH 传送数据标志;F=FIN, 关闭连接标志;ack, 表示确认包。RST=RESET,异常关闭连接;.,表示没有任何标志。
seq 4068299219:4068299220 请求同步的序列号,注意 4068299220 - 4068299219 = 1 表示数据包的大小和后面的length的大小一致
ack 755692383 确认已经同步的序列号+1
win 8212 当前可用的窗口大小
length 1: HTTP 包体的长度
TCP 结构

tcpdump 介绍的更多相关文章
- Tcpdump的详细用法
1. TCPDump介绍 TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来 ...
- Wireshark和TcpDump抓包分析心得
Wireshark和 TcpDump抓包分析心得 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Window ...
- android下tcpdump抓包
tcpdump是最快捷方便的抓包方式,还可以加深对网络协议的理解.android下可以通过如下方式抓包: 1 Android上启动tcpdump Android设备可以把tcpdump的可执行文件上传 ...
- tcpdump 使用
例子: 首先切换到root用户 tcpdump -w aaa.cap -i eth7 -nn -x 'port 9999' -c 1 以例子说明参数: -w:输出到文件aaa.cap ...
- 转 Wireshark和TcpDump抓包分析心得
1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话 ...
- (转) tcpdump参数解析及使用详解
tcpdump介绍 原文:http://blog.csdn.net/hzhsan/article/details/43445787 tcpdump 是一个运行在命令行下的抓包工具.它允许用户拦截和显示 ...
- tcpdump抓包工具
tcpdump抓包工具 一:TCPDump介绍 TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and ...
- tcpdump截帧工具使用
一.tcpdump介绍 tcpdump是Linux下功能强大的截帧工具,相当于windows下的wireshark一下,只是操作方式是命令行的,需要熟悉Linux命令行操作. 常用的Linux ...
- 【Linux】tcpdump
tcpdump介绍 tcpdump 是一个运行在命令行下的抓包工具.它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包.tcpdump 适用于 大多数的类Unix系统操作系统 ...
随机推荐
- [视频教程] ubuntu系统下安装最新版PHP7.3.X环境
视频地址: https://www.bilibili.com/video/av69088870/ 笔记: 先安装一下这个命令 add-apt-repositoryapt-get install sof ...
- 1、mongoDB服务器的搭建与连接
下载----编译----安装之后: 1.首先,创建一个mongodb_simple的目录,进入到目录中. 2.创建文件夹:data,用来存储数据库的数据文件. 3.创建文件夹:log,用来存储数据库的 ...
- Vysor
官网:http://www.vysor.io/ Vysor用 PC远程控制投影安卓手机/平板工具 Vysor 是一个免费的google浏览器插件. 它可以让你在pc上控制你的Android手机.平板等 ...
- MATLAB粒子群优化算法(PSO)
MATLAB粒子群优化算法(PSO) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.介绍 粒子群优化算法(Particle Swarm Optim ...
- 目标检测中的pooling操作
1.SPPnet池化过程 假设这个feature map的尺寸是M*N*256,将这个feature map的每一个channel以4*4,2*2和1*1来划分格子,每个格子里面做max poolin ...
- 训练自己数据-xml文件转voc格式
首先我们有一堆xml文件 笔者是将mask-rcnn得到的json标注文件转为xml的 批量json转xml方法:https://www.cnblogs.com/bob-jianfeng/p/1112 ...
- Leetcode53_Spiral_Matrix
Spiral_Matrix https://leetcode-cn.com/problems/spiral-matrix/ //当行数只有一行: 1. n = 1; m -> 0; //当列数只 ...
- window.location.href方式提交json数据
${ctx}/vehicleFlow/to_vehflow_detail.do?strJson="+encodeURIComponent(json)
- ASP.NET开发实战——(十二)ASP.NET MVC 与数据库之Entity Framework Migrations
在开发数据库应用程序的时候,经常会遇到某些表需要添加字段或者修改类型.新增表等需求,而对于EF Code First来说关注的只有实体类,当需求变更时只需要添加新的实体类或者在实体类中添加.删除.修改 ...
- Win10中SVN图标不显示的解决
团队协作开发,SVN是离不开的.在Win10安装的版本是TortoiseSVN-1.9.5.27581,可检出后图标未显示出来.解决方法是修改注册表: 第一步,打开注册表编辑器位置:HKEY_LOCA ...