Linux每日一篇 - 51 - tcpdump
Linux网络包分析神器!掌握tcpdump命令,捕获分析网络流量,诊断网络问题!
tcpdump命令是什么?
tcpdump是强大的网络数据包分析工具,可以截获网络接口上的数据包并以可读格式显示,是网络故障排查和安全分析的必备工具。
基本用法
# 捕获所有网络接口的数据包
tcpdump
# 捕获指定接口的数据包
tcpdump -i eth0
# 捕获指定数量的数据包
tcpdump -c 10
# 以ASCII格式显示数据包内容
tcpdump -A
# 以十六进制格式显示数据包内容
tcpdump -X
# 显示详细信息
tcpdump -v
# 将数据包保存到文件
tcpdump -w capture.pcap
实用技巧
# 从文件读取数据包
tcpdump -r capture.pcap
# 显示时间戳
tcpdump -t
# 以人类可读格式显示时间戳
tcpdump -tt
# 不解析主机名
tcpdump -n
# 不解析端口名
tcpdump -nn
# 显示数据包的全部内容
tcpdump -s 0
常用场景
# 捕获HTTP流量
tcpdump -i eth0 port 80
# 捕获特定主机的流量
tcpdump host 192.168.1.1
# 捕获到特定主机的流量
tcpdump dst host 192.168.1.1
# 捕获来自特定主机的流量
tcpdump src host 192.168.1.1
# 捕获SSH连接
tcpdump -i eth0 port 22
# 捕获DNS查询
tcpdump -i eth0 port 53
# 捕获TCP SYN包
tcpdump 'tcp[tcpflags] & tcp-syn != 0'