一. tcpdump工具介绍
tcpdump就是:dump the traffice on anetwork,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东西之一。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。
二.tcpdump工具命令详解
2.1 tcpdump 的语法
Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ -Q|-P in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
[ -z command ] [ -Z user ] [ expression ]
2.2 tcpdump参数说明
tcp: 协议类型,用来过滤数据报的协议类型
-i bond0: 只抓取经过接口bond0的包
-tttt: 使用格式 2019-02-02 10:37:37.120297,便于分析
-s 0: 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
-c 100: 只抓取100个数据包
dst port ! 22: 不抓取目标端口是22的数据包
src net 10.10.1.0/24: 数据包的源网络地址为10.10.1.0/24
-w 20190131.tcpdump: 保存成tcpdump文件中,方便使用wireshark分析抓包结果
-D: 列出所有可用的网络接口 -n: 禁用域名解析,让tcpdump直接输出IP地址.
-e: 每行的打印输出中将包括数据包的数据链路层头部信息
-X: 以16进制格式输出数据包的内容,不加该参数,会只输出iptcp/udp头部信息。加上该选项会将整个数据包输出。
-vvvv 该参数其实是-v与-vvv的组合。
-v会输出稍微详细一点的信息包括校验和ttl之类的;
-vvv会尝试解析应用层协议,输出详细信息。二者组合就能完整的详细信息。
-A:以ASCII值显示抓到的包,比如和MySQL的交互时,可以通过-A查看包的文本内容.
2.3 tcpdump使用例子
tcpdump -i eth0
tcpdump host 192.168.1.134
tcpdump host 192.168.0.212 and (192.168.1.134 or 192.168.1.135 )
tcpdump ip host 192.168.0.212 and ! 192.168.1.134
tcpdump -i eth0 src host 127.0.0.1
tcpdump -i eth0 dst host 127.0.0.1
tcpdump tcp port 23 and host 192.168.1.134
tcpdump udp port 123
tcpdump tcp -i eth0 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap