用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络、排查问题等所必备的东东之一。
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpdump命令的使用
常用选项:
-n 不进行IP地址到主机名的解析。
-nn 不进行端口名称的解析以及IP地址到主机名的解析。
-N 不打印出默认的域名。
-i 制定哪个网卡
-t 不打印UNIX时间戳,也就是不显示时间。
-tt 打印原始的、未格式化过的时间。
-v 详细的输出,也就比普通的多了个TTL和服务类型
-X 输出以ASCII码的格式和十六进制的格式输出。
-p 不让网卡工作在混杂模式。
例子:抓取172.16.22.12上通过网卡eth0的数据,不进行端口名称的解析以及IP地址到主机名的解析并且为tcp协议端口为21的包,
# tcpdump -X -i eth0 -nn host 172.16.22.12 and tcp port 21
显然抓取的是ftp服务的包,只要不是基于ssl的ftp,都能把登录ftp的账号及密码通过抓包工具显示出来了。