tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w
选项将数据包保存到文件中,方便以后分析。
1 | -a: 尝试将网络和广播地址转换成名称; |
实例
直接启动tcpdump将监视第一个网络接口上所有流过的数据包:
1 | tcpdump |
监视指定网络接口的数据包:
1 | tcpdump -i eth1 |
指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
1 | tcpdump host 210.27.48.1 |
截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信:
1 | tcpdump host "210.27.48.1 and (210.27.48.2 or 210.27.48.3)" |
如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
1 | tcpdump ip host 210.27.48.1 and !210.27.48.2 |
截获主机hostname发送的所有数据:
1 | tcpdump -i eth0 src host hostname |
监视所有送到主机hostname的数据包:
1 | tcpdump -i eth0 dst host hostname |
如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
1 | tcpdump tcp port 23 host 210.27.48.1 |
打印所有源地址或目标地址是本地主机的IP数据包:
1 | tcpdump ip and not net localnet |