在linux中使用tcpdump命令 – 监听网络流量 您所在的位置:网站首页 交换机查看总流量命令 在linux中使用tcpdump命令 – 监听网络流量

在linux中使用tcpdump命令 – 监听网络流量

2023-07-27 02:53| 来源: 网络整理| 查看: 265

tcpdump命令 – 监听网络流量

tcpdump命令是一款sniffer工具,是linux上的抓包工具,嗅探器;它可以打印出所有经过网络接口的数据包的头信息。

tcpdump命令工作时先要把网卡的工作模式切换到混杂模式。所以tcpdump命令需要以root身份运行。tcpdump命令是linux下使用最广泛的网络协议分析工具。使用tcpdump命令时,必须精通TCP/IP协议工作原理。

语法格式: tcpdump [参数]

常用参数:

-a 尝试将网络和广播地址转换成名称 -c 收到指定的数据包数目后,就停止进行倾倒操作 -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出 -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出 -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出 -e 在每列倾倒资料上显示连接层级的文件头 -f 用数字显示网际网络地址 -F 指定内含表达方式的文件 -i 使用指定的网络截面送出数据包 -l 使用标准输出列的缓冲区 -n 不把主机的网络地址转换成名字 -N 不列出域名 -O 不将数据包编码最佳化 -p 不让网络界面进入混杂模式 -q 快速输出,仅列出少数的传输协议信息 -r 从指定的文件读取数据包数据 -s 设置每个数据包的大小 -S 用绝对而非相对数值列出TCP关联数 -t 在每列倾倒资料上不显示时间戳记 -tt 在每列倾倒资料上显示未经格式化的时间戳记 -T 强制将表达方式所指定的数据包转译成设置的数据包类型 -v 详细显示指令执行过程 -vv 更详细显示指令执行过程 -x 用十六进制字码列出数据包资料 -w 把数据包数据写入指定的文件

【常用关键字】

tcpdump命令中几种关键字: 第一种:类型关键字,包括:host,net,port 第二种:传输方向关键字,包括:src,dst 第三种:协议关键字,包括: ip,arp,tcp,udp等类型 第四种:其他关键字,包括:gateway,broadcast,less,greater,not,!,and,&&,or,||

【备注说明】

抓取回环网口的包: $ tcpdump -i lo防止包截断的方法: $ tcpdump -s 0以数字显示主机及端口: $ tcpdump -n

参考实例 查看版本 tcpdump --version 在这里插入图片描述 显示TCP包信息

tcpdump

监视指定网络接口的数据包: tcpdump -i eno16777736 在这里插入图片描述 抓取80端口的HTTP报文,以文本形式展示:

tcpdump -i any port 80 -A在这里插入图片描述在这里插入图片描述 抓取所有经过eno16777736的网络数据包,当前eno16777736的IP为192.168.23.134

在192.168.23.142主机执行 因为执行的为检测命令,如果当时没有输出,可以使用其他机器使用ssh或其他方式触发命令后续的输出内容 tcpdump -i eno16777736 host 192.168.23.134 在这里插入图片描述 截取两台主机之间的数据 tcpdump -n -i eno16777736 host 192.168.23.136 and 192.168.23.142 在这里插入图片描述 截取进入 两台主机 的数据 tcpdump -n -i eno16777736 dst 192.168.23.136 or 192.168.23.142 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 【命令浅解】

tcpdump tcp -i eno16777736 -t -s0 -c 100 and dst port ! 22 and src net 192.168.23.0/24 -w ./target.cap

1)tcp: # ip,icmp,arp,rarp,udp这些选项要放第一个参数,用来过滤数据报的类型 2)-i eno16777736 # 只抓经过网口eth1的包 3)-t # 不显示时间戳 4)-s 0 # 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包 5)-c 100 # 只抓取100个数据包 6)dst port ! 22 # 不抓取目标端口是22的数据包 7)src net 192.168.1.0/24 # 数据包的源网络地址为192.168.1.0/24 8)-w ./target.cap # 保存成cap文件,方便用wireshark工具进行分析 在这里插入图片描述 通过IP找流量 tcpdump host 192.168.23.142 -i eno16777736 在这里插入图片描述

通过源地址和/或目的地址进行过滤 如果你只想一个方向上的流量,可以使用 src 或 dst 指定。

tcpdump src 192.168.23.142 -i eno16777736 tcpdump dst 192.168.23.142 -i eno16777736

在这里插入图片描述 在这里插入图片描述 通过网段过滤流量 使用 net 选项查看进出一个网段或子网的进出流量。

tcpdump net 192.168.23.0/24

使用十六进制输出流量包的内容 当要对一些包进行仔细审查其内容的时候,使用十六进制输出的方式来查看包就很有用了。 -c 1 是指定只抓取一个包。

tcpdump -c 1 -X icmp -i eno16777736 tcpdump -c 1 -X tcp port 80 -i eno16777736 在这里插入图片描述在这里插入图片描述 查看指定端口上的流量 通过 port 选项,可以找到指定端口上的进出流量。

tcpdump port 80 -i eno16777736

tcpdump src port 80 -i eno16777736 在这里插入图片描述在这里插入图片描述

只查看 IPv6 流量

tcpdump src fe80::20c:29ff:fe7b:cf78 -i eno16777736 tcpdump -nn dst fe80::20c:29ff:fe7b:cf78 -i eno16777736 -c 2

使用 ipv6 地址ping使用的是 ping6 命令 命令格式为 ping6 ipv6地址%网卡名 #要通过 “%” 指定网卡名 ping -6 ipv6地址%网卡名 #要通过 “%” 指定网卡名, ping -6 在ubuntu上无效,需要使用ping6

通过端口范围过滤 tcpdump portrange 21-233

查看指定大小的数据包 可以查看指定大小的数据包,指定数据包的大小的时候还可以使用比较运算符。

tcpdump less 32 tcpdump greater 64 tcpdump



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有