Home>Article>Operation and Maintenance> How to use tcpdump to capture packets under Linux system
This article mainly talks about the tcpdump packet capture case, which has certain reference value. Friends who are interested should come and learn it!
1.常见参数 tcpdump -i eth0 -nn -s0 -v port 80 -i 选择监控的网卡 -nn 不解析主机名和端口号,捕获大量数据,名称解析会降低解析速度 -s0 捕获长度无限制 -v 增加输出中显示的详细信息量 port 80 端口过滤器,只捕获80端口的流量,通常是HTTP 2. tcpdump -A -s0 port 80 -A 输出ASCII数据 -X 输出十六进制数据和ASCII数据 3. tcpdump -i eth0 udp udp 过滤器,只捕获udp数据 proto 17 协议17等效于udp proto 6 等效于tcp 4. tcpdump -i eth0 host 10.10.1.1 host 过滤器,基于IP地址过滤 5. tcpdump -i eth0 dst 10.105.38.204 dst 过滤器,根据目的IP过滤 src 过滤器,根据来源IP过滤 6. tcpdump -i eth0 -s0 -w test.pcap -w 写入一个文件,可以在Wireshark中分析 7. tcpdump -i eth0 -s0 -l port 80 | grep 'Server:' -l 配合一些管道命令的时候例如grep 8. 组合过滤 and or && or or || not or ! 9. 快速提取HTTP UA tcpdump -nn -A -s1500 -l | grep "User-Agent:" 使用egrep 匹配 UA和Host tcpdump -nn -A -s1500 -l | egrep -i 'User-Agent:|Host:' 10. 匹配GET的数据包 tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' 匹配POST包,POST的数据可能不在包里 tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354' 11. 匹配HTTP请求头 tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:" 匹配一些POST的数据 tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:" 匹配一些cookie信息 tcpdump -nn -A -s0 -l | egrep -i 'Set-Cookie|Host:|Cookie:' 12. 捕获DNS请求和响应 tcpdump -i eth0 -s0 port 53 13. 使用tcpdump捕获并在Wireshark中查看 使用ssh远程连接服务器执行tcpdump命令,并在本地的wireshark分析 ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i - ssh ubuntu@115.159.28.111 'sudo tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i - 14. 配合shell获取最高的IP数 tcpdump -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20 15.捕获DHCP的请求和响应 tcpdump -v -n port 67 or 68
Related tutorials:
The above is the detailed content of How to use tcpdump to capture packets under Linux system. For more information, please follow other related articles on the PHP Chinese website!