ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【最详细】Tcpdump使用实验

2021-07-18 10:01:25  阅读:205  来源: 互联网

标签:10 nn tcpdump host 过滤 实验 详细 Tcpdump eth0


【原理】

tcpdump和wireshark一样,是一个抓包工具,基于libpcap开发的,过滤机制使用内核的BPF过滤(伯克利数据包过滤器,Berkeley Packet Filter,工作在操作系统的内核态,由网络转发和数据包过滤两部分组成。感兴趣的同学可以自己看一下),在linux下使用,也可以把tcpdump当成linux的命令。多数linux服务器是不按照图形界面的,在这种情况下,就可以使用tcpdump。

【步骤】

安装

tcpdump一般在linux服务器上是默认安装的,也可以说tcpdump是linux服务器端一个命令,可以用whereis命令看下,他的安装位置;用tcpdump -help看下
在这里插入图片描述
在这里插入图片描述

切换至su模式

sudo su

2.常用命令选项

跟进不同用户的权限,如果需要sudo的,在命令前面加上sudo

2.1

指定要抓的数据包的数量,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包

tcpdump -c 10

在这里插入图片描述

2.2 查看哪些端口可以抓包

tcpdump -D
在这里插入图片描述

2.3 指定接口

tcpdump -i eth0 -c 10
在这里插入图片描述

2.4 -n和-nn

-n: 对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析

-nn: 把端口显示为数值,否则显示端口服务名

对比下上图tcpdump -i eth0 -c 10红色方框的部分

tcpdump -i eth0 -c 10 -n

tcpdump -i eth0 -c 10 -nn

在这里插入图片描述

2.5 -x和-xx;-X和-XX,最常用的是-XX

-x:以16进制打印出每个包的数据(不包括连接层的头部)
-xx:以16进制打印出每个包的数据
-X:输出包头部的数据,以16进制和ASCII两种方式同时输出(不包括连接层的头部)
-XX:输出包头部的数据,会以16进制和ASCII两种方式同时输出。

在这里插入图片描述

在这里插入图片描述

2.6 -v,-vv答应详细输出,一个比一个详细,看一下吧

如果没带-v或者-vv选项的时候,会有如下提示
在这里插入图片描述

对比一下带-v和不带-v的(tcpdump -i eth0 -c 10 -nn)区别,会多输出一些信息。
在这里插入图片描述

2.7 包保存到指定文件-w,从指定文件读取包答应到屏幕-r

在这里插入图片描述
在这里插入图片描述

3.常用过滤字段

3.1 过滤指定主机,首先ping下qiyun,看看ip是多少,然后用host过滤,抓到的都是指定host的包

tcpdump host qiyun

在这里插入图片描述

3.2 源与目的,src与dst

tcpdump -i eth0 -c 10 -nn src host qiyun tcpdump -i eth0 -c 10 -nn dst host qiyun

在这里插入图片描述

tcpdump -i eth0 -c 10 -nn src host 218.30.116.184 tcpdump -i eth0 -c 10 -nn dst host 218.30.116.184

在这里插入图片描述

3.3 协议过滤

过滤udp协议,可能服务器上目前没有udp的包,再开一个窗口,自己创造点儿包出来,用curl http://www.baidu.comcurl http://www.hao123.comcurl http://www.163.com tcpdump -i eth0 -c 10 -nn udp

在这里插入图片描述

抓ping包
tcpdump -i eth0 -c 10 -nn icmp
在这里插入图片描述

3.4 过滤网段

tcpdump -i eth0 -c 10 -nn net 192.168
在这里插入图片描述

3.5 过滤端口

tcpdump udp port 53

tcpdump port 2222是我ssh的端口

在这里插入图片描述
在这里插入图片描述

3.6 协议字段过滤

表达式单元之间可以使用操作符" and / && / or / || / not / ! "进行连接

过滤syn包和fin包

tcpdump -i eth0 -c 10 -nn 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'
在这里插入图片描述

过滤tcp 80端口,ip包长度大于1000的包(ip[2:2]表示整个ip数据包的长度)

tcpdump -i eth0 -c 10 -nn 'tcp port 80 and ip[2:2] > 1000'
在这里插入图片描述

过滤icmp的reply包

tcpdump -i eth0 -c 10 -nn 'icmp[icmptype] == icmp-echoreply'
在这里插入图片描述

【总结】

tcpdump是linux抓包非常有用的工具

标签:10,nn,tcpdump,host,过滤,实验,详细,Tcpdump,eth0
来源: https://blog.csdn.net/qq_44275213/article/details/118873429

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有