Linux tcpdump命令使用方法
tcpdump是Linux上常用的抓包命令,用于截取网络分组并输出分组内容,常用于网络问题分析和排查。tcpdump工具经常用于分析定位问题,比如多服务器间的消息发送、接收码流分析,界定消息发送、接收情况。消息发送时延等。
tcpdump语法
tcpdump [-i 接口] [-nn] [-w 文件名] [-c 次数] [-Ae][-qX] [过滤条件]
-i 指定监听的网络接口。默认为eth0。-i any 表示抓取所有抓取所有网络接口的包。
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。如果没有这个参数,tcpdump会持续不断的监听,直到用户输入ctrl+c为止。
-n 不把网络地址转换成名字。
-nn 直接以IP及端口号显示,而不是主机名与服务名
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-vv 输出详细的报文信息。
-w 抓包结果写入文件
-r 读取抓包结果。文件为-w所生成
tcpdump命令带上指定参数可以更精确的获取需要的信息,避免截取过多的无用信息。以上是个人常用参数,还有很多参数自己不常使用所以不一一列出。
tcpdump常用实例
(1)获取主机192.168.0.0和主机192.168.0.1的所有分组
tcpdump -i eth1 -A -nn -s 0 -w catch.cap host 192.168.0.0 and host 192.168.0.1
(2)获取主机192.168.0.0和主机192.168.0.1或192.168.0.2的所有分组
tcpdump -i eth1 -A -nn -s 0 -w catch.cap host 192.168.0.0 and host 192.168.0.1 or 192.168.0.2
(3)获取主机192.168.0.0、端口号为10005和主机192.168.0.1的所有分组
tcpdump -i eth1 -A -nn -s 0 -w catch.cap port 10005 host 192.168.0.0 and host 192.168.0.1
(4)获取发送给目标主机为192.168.0.1的所有分组
tcpdump -i any dst 192.168.0.1
(5)获取本机端口为7776所有接收和发送的分组
tcpdump -i any -n src port 7776
tcpdump数据包分析
tcpdump抓取的数据包通常是借助wireshark工具进行分析。Wireshark工具的分析方法可以参考<wireshark抓包新手使用教程>。将tcudump生成的catch.cap包导入到wireshark即可。wireshark常用过滤命令如下:
#ip地址过滤
ip.addr ==
ip.src ==
ip.dst ==
#tcp/udp端口过滤
tcp.port ==
udp.port ==
#contains关键字用法
tcp contains youku
udp contains youku
http contains ok00
#协议过滤
dns and http
dns or http
arp or icmp
sip and rtp
#http包的过滤
http.request.method== POST
http.request.method== GET
http.response.code == 200
#packet lost如何查看
tcp.analysis.flags tcp.flags.syn ==1
#tcp包的syn字段为1
tco.flags.reset ==1
#过滤掉不需要的包,感叹号的用法
!(arp or dns or icmp)
参考资料
1、http://blog.csdn.net/s_k_yliu/article/details/6665673/
2、http://www.itshouce.com.cn/linux/linux-tcpdump.html
3、https://segmentfault.com/a/1190000009320118
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?