tcpdump介绍
tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。
tcpdump语法
tcpdump参数
监听所有端口,直接显示 ip 地址
显示更详细的数据报文,包括 tos, ttl, checksum 等。
显示数据报的全部数据信息,用 hex 和 ascii 两列对比输出。
host: 过滤某个主机的数据报文
src, dst: 过滤源地址和目的地址
net: 过滤某个网段的数据
过滤某个协议的数据,支持 tcp, udp 和 icmp
过滤通过某个端口的数据报
src/dst, port, protocol: 结合三者
抓取指定范围的端口
通过报文大小过滤请求,数据报大小,单位是字节
抓包输出到文件
从文件读取报文显示到屏幕
源地址是 192.168.1.110,目的端口是3306的数据报
从 192.168 网段到 10 或者 172.31 网段的数据报
tcpdump 的输出解读
最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口,上面的例子第一条数据报中,源地址 ip 是192.168.1.110,源端口是 40411,目的地址是 192.168.1.123,目的端口是 80。> 符号代表数据的方向。上面的三条数据还是 tcp 协议的三次握手过程,第一条就是 SYN 报文,这个可以通过 Flags [S] 看出。下面是常见的 TCP 报文的 Flags:
而第二条数据的 [S.] 表示 SYN-ACK,就是 SYN 报文的应答报文。