5分钟入门:tcpdump最佳实践与常用技巧 🕵️♂️
tcpdump 是最常见、最强大的网络抓包与分析工具之一,广泛用于网络故障排查、安全分析、协议研究等场景。本文总结tcpdump的基本用法与实战技巧,助你高效上手。
一、基础命令速查
- 抓取全部流量
tcpdump
- 指定网卡抓包
tcpdump -i eth0
- 保存为pcap文件
tcpdump -i eth0 -w traffic.pcap
- 读取已保存文件
tcpdump -r traffic.pcap
- 只抓前N个包
tcpdump -c 100
二、抓包过滤器实用示例
只看某个IP的数据包
tcpdump host 192.168.1.10
只看某端口流量
tcpdump port 80
只看TCP/UDP/ICMP等协议
tcpdump tcp tcpdump udp tcpdump icmp
源或目标端口/主机
tcpdump src port 22 tcpdump dst host 8.8.8.8
组合条件
tcpdump 'src 10.0.0.1 and (dst port 80 or dst port 443)' tcpdump 'tcp and port 443 and host example.com'
三、进阶输出与性能优化
- 简化输出(不解析主机名与端口服务名)
tcpdump -n -nn
- 显示详细包内容(十六进制/ASCII)
tcpdump -X
- 显示包的链路层头部
tcpdump -e
- 只显示包头,不抓取数据内容(提升性能)
tcpdump -s 96
- 加时间戳
tcpdump -tttt
四、实战场景案例
- 抓取所有经过网关的DNS请求
tcpdump -i eth0 port 53
- 定位内网主机异常带宽消耗
tcpdump -i eth0 src net 192.168.0.0/16 and greater 1000
- 抓取HTTP登录明文密码(教育用途,勿用于非法用途)
tcpdump -i eth0 -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
五、tcpdump最佳实践心得
- 尽量用过滤器,避免全网抓包,节省资源,提高效率。
- 生产环境抓包前,先与安全/运维沟通,避免影响业务。
- 抓包文件存储空间要足够,适时分卷保存(-C参数)。
- 抓包文件要及时分析和加密存储,防止敏感数据泄露。
- 结合Wireshark等GUI工具做离线详细分析。
- 可用
nohup
或screen
后台长时间抓包,防止断连中断任务。 - 定期回顾抓包日志,积累分析经验。
六、常用组合命令
- 定时抓包,按文件大小轮转
tcpdump -i eth0 -w dump-%Y%m%d%H%M%S.pcap -C 100
- 抓取到目标文件后自动停止
tcpdump -i eth0 -w dump.pcap -G 60 -W 10
七、参考资料
一句话总结:tcpdump简单易用、功能强大,善用过滤表达式和文件管理技巧,是网络运维和安全人员的必备工具。