在linux中使用tcpdump命令 – 监听网络流量 | 您所在的位置:网站首页 › 交换机查看总流量命令 › 在linux中使用tcpdump命令 – 监听网络流量 |
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 tcpdump 监视指定网络接口的数据包: tcpdump -i eno16777736 tcpdump -i any port 80 -A 在192.168.23.142主机执行 因为执行的为检测命令,如果当时没有输出,可以使用其他机器使用ssh或其他方式触发命令后续的输出内容 tcpdump -i eno16777736 host 192.168.23.134 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工具进行分析 通过源地址和/或目的地址进行过滤 如果你只想一个方向上的流量,可以使用 src 或 dst 指定。 tcpdump src 192.168.23.142 -i eno16777736 tcpdump dst 192.168.23.142 -i eno16777736
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 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 实验室设备网 版权所有 |