tcpdump // 默认抓eth0网卡的数据
tcpdump -nn //查看数据流 -nn 就是说ip让它是数字而不是字符串 这样的话更直观一些
tcpdump -nn -c 100 //-c指定抓包的数量 100个
tcpdump -i eth0 //-i就是指定网卡 如果不加-i 默认抓eth0
tcpdump -i eth0 port 59029 //port指定端口
tcpdump -nn tcp and port 59029 //抓tcp协议和59029端口 and就是增加
tcpdump -nn udp //抓udp包
tcpdump -nn -i eth0 host 192.168.8.101 and tcp and port 59029 //指定网卡 host(进入或离开) 协议 端口
tcpdump -nn -i eth0 -w 1.txt //-w 抓到的包存到一个文件 过一段时间 ctrl+c 结束 抓到这个包是二进制的
tcpdump -r 1.cap //使用这个命令查看包的具体流向 实际上这些东西并不是包的内容 内容实际上就是我们这个包的网卡,实际流向是什么
我们传输一个图片 你用 tcpdump查看可能就是,你来源的ip访问的图片的ip是什么,端口是什么,而这个包,抓到的包1.cap并不是包的内容 而是数据包的流向 ,而这个包的内容就是我们图片的东西
比如说你去访问一个web服务,你访问到的呢 可能是一些文档、图片、元素,那我们抓到这个包呢就是那些东西,而你不用w的话就是那些流向,数据包的流向
tcpdump -nn -s0 -i eth0 tcp and port 59029 -c 10 > 2.cap //不加w是数据包的流向
tcpdump -nn -i eth0 tcp and port 33880
-nn
-i eth0
-c 100
host 192.168.30.14
src host 192.168.30.14
dst host 192.168.30.14 监视所有送到主机192.168.30.14的数据包
port 59029
port ! 59029 端口不是59029的包
tcp tcp协议
打印所有源或目的端口是59029, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包.(ipv6的版本的表达式可做练习)
tcpdump 'tcp and port 59029 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
(nt: 可理解为, ip[2:2]表示整个ip数据包的长度, (ip[0]&0xf)<<2)表示ip数据包包头的长度(ip[0]&0xf代表包中的IHL域, 而此域的单位为32bit, 要换算