软件调试笔记之tcpdump工具

默认启动

    tcpdump

普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

指定网络接口的数据包

    tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。使用-i选项,用于指定要监听的网络接口

指定网络接口的数据包,并写到文件中保存

    tcpdump -i eth1 -w ./tcpdump_data.cap

使用-w选项,用于指定保存监听的网络接口流过的数据包保存的路径

 

指定网络接口,主机和端口号的网络的数据包并保存

    tcpdump -i eth1 host 192.168.52.102 and port 80 -w ./tcpdump_data.cap

 

监视指定协议类型,主机和端口的数据包

如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令

    tcpdump tcp port 23 and host 210.27.48.1

对本机的udp 123 端口进行监视 123 ntp的服务端口

    tcpdump udp port 123 

 

tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。
还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

    tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

参考链接:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章