系统监测工具tcpdump

tcpdump-一款经典的网络抓包工具

用过的命令:

sudo tcpdump -i eno1 tcp port 8079 and host 192.168.1.188 -X
tcpdump
-n    使用IP地址表示主机,而不是主机名;使用数字表示端口号,而不是服务名称
-i    指定要监听的网卡接口,-i any 表示抓去所有网卡上的数据包
-v    输出一个稍微详细的信息,例如TTL和TOS信息
-t    不打印时间戳
-e    显示网卡帧头部信息
-c    紧抓取指定数量的数据包
-x    以十六进制数显示数据包的内容,但不显示包中以太网帧的头部信息
-X    与-x类似,不过打印每个十六进制字节对应的ASCII字符
-XX    与-X相同,不过还要打印以太网帧的头部信息
-s    设置抓包时的抓取长度
-S    以绝对值来显示TCP报文段的序号,而不是相对值
-w    将tcpdump的输出以特殊的格式定向到某个文件
-r    从文件读取数据包信息并显示
tcpdump net 1.2.3.0/24    # 抓取整个1.2.3.0/255.255.255.0网络上的数据包
tcpdump dst port 1234     # 抓取进入端口1234的数据包
tcpdump icmp              # 抓取所有ICMP数据包

tcpdump ip host host1 and not host2    # 抓取所有host1上的数据包而不是host2上的数据包
tcpdump src 10.0.0.1 and dst port 1234 or 22 # 抓取来自主机10.0.0.1并且端口号是1234或者22的包
tcpdump tcp[13]&2!=0    # 仅抓取TCP同步报文段

tcpdump表达式操作数:类型(type),方向(dir)和协议(proto)

1、类型:解释器后面紧跟着的参数的含义。tcpdump支持的类型包括host、net、port和portrange。他们分别指定主机名(或IP地址),用CIDR方法表示的网络地址、端口号以及端口范围。比如抓取整个1.2.3.0/255.255.255.0网络上的数据包可以使用如下命令

tcpdump net 1.2.3.0/24

2、方向,src指定数据报的发送端,dst指定数据包的目的端。比如要抓取进入端口13579的数据包,可以使用如下命令:

tcpdump dst port 13579

3、协议,指定目标协议。比如要抓取所有ICMP数据包,可以使用如下命令:

tcpdump icmp

逻辑操作符:and、 or、 not、

比如抓取主机A和所有非B的主机之间交换的IP数据包,可以使用如下命令:

tcpdump ip host A and not B

 如果表达式比较复杂,那么我们可以使用括号将它们分组。不过在使用括号时,我们要么使用反斜杠" \ "对它转义,要么用单引号“ ‘ ”将其括住,以避免它被shell所解释。

比如要抓取来自主机A , 目标端口是88或22的数据包,可以使用如下命令:

tcpdump 'src A and (dst port 88 or 22)'

此外,tcpdump还允许直接使用数据包中的部分协议字段的内容来过滤数据包。

比如仅抓取TCP同步报文段,可使用如下命令:

tcpdump 'tcp[13] & 2 != 0'

这是因为TCP头部的第14个字节的第2个位正是同步标志。该命令也可以表示为:

tcpdump 'tcp[tcpflags] & tcp-syn != 0'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值