tcpdump学习笔记
转载自:Tcpdump的详细用法 1. TCPDump介绍 TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有
·
简介
简单的说,tcpdump就是一个抓包工具,类似Wireshark。
tcpdump可以根据使用者的定义过滤/截取网络上的数据包,并进行分析。tcpdump可以将数据包的头部完全接货下来进行分析。支持网络层、协议层、主机、端口等特定规则的过滤。
tcpdump的使用
快速入门
首先接收两个选项
-i 指定网络接口
-w 将截取到的数据包写入文件
为什么先介绍这两个选项呢,因为有了这两个选项,结合Wireshark,你不想学tcpdump就可以不学了,直接把通过某个网络接口的所有数据包都保存到一个文件中,再到Wireshark中进行分析即可。
命令如下:
windeal@ubuntu:~$ sudo tcpdump -i eth0 -w hello.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C129 packets captured
129 packets received by filter
0 packets dropped by kernel
windeal@ubuntu:~$
可以看出例子中一共截获了129个数据包,然后直接用Wireshark打开文件hello.cap即可对其进行分析。
如下图:
tcpdump常用命令:
tcpdump提供了一系列的参数来满足用户需求,根据使用者定义分析过滤数据包。
windeal@ubuntu:~$ tcpdump --help
tcpdump: invalid option -- '-'
tcpdump version 4.2.1
libpcap version 1.1.1
Usage: tcpdump [-aAbdDefhHIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
windeal@ubuntu:~$
这些参数大致可以分为以下几类:
捕获过滤类:类似Wireshark的capture filter
显示过滤类:类似Wireshark的display filter,就是Wireshark左上角有个下拉框的那个
辅助类
默认情况下,tcpdump显示格式如下:
04:57:52.195631 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
04:57:52.662335 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
04:57:52.944999 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAS
下面介绍一些常用的参数:
-i 前面已经介绍,用于指定网络接口
-v 显示稍微详细信息
-vv 显示比-v更详细的信息
-e 打印链路层头部信息
-t 不输出时间戳
-tttt 输出date格式的时间戳
host 指定主机
在tcpdump中也可以使用src、dst 以及and or not之类的参数
应用举例:
tcpdump host widneal-PC #进出windeal-PC的数据包
tcpdump host 192.168.1.1 #指定ip, 进出192.168.1.1 的数据包
tcpdump src host 192.168.1.1 #指定源ip, 来自192.168.1.1 的数据包
tcpdump tcp port 23 host 192.168.1.1 #获取主机192.168.1.1 接收或发出的telnet(端口号23)包
#To print all ICMP packets that are not echo requests/replies (i.e., not ping packets)
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
更多推荐
已为社区贡献1条内容
所有评论(0)