linux下的抓包
1. 查看网卡名字
cat /proc/net/dev
2.抓取外网进来的包
tcpdump -i eth0 port 8081 -s 4096 -w 2.pcap
3.抓取自己服务器上的两个程序之间访问的数据
换成 lo这个网卡
4. 抓取http数据
tcpdump -i lo -A -s 0 'tcp port 8101 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -w 1.pcap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口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文件,方便用ethereal(即wireshark)分析
(9)port 8080 : 只抓取8080端口
知识点:
自己服务器上通过lo网卡进行通信, 与外网通过ethx 进行通信
博客中所涉及到的图片都有版权,请谨慎使用