Linux中tcpdump命令实例详解

2019-01-16 23:24:26王振洲

三、常用示例

3.1监视指定主机的数据包

(1)打印所有到达或从主机sunrise发出的数据包,host可以是IP地址或主机名

tcpdump host sunrise

(2)打印主机A与B或C之间来往的所有数据包

tcpdump host A and ( B or C )

(3)打印ace与任何其他主机之间通信的IP数据包, 但不包括与helios之间的数据包.

tcpdump ip host ace and not helios

3.2监视指定网络的数据包

(1)打印本地主机与Berkeley网络上的主机之间的所有通信数据包

tcpdump net ucb-ether

(2)打印所有通过网关snup的ftp数据包。注意,表达式被单引号括起来了, 这可以防止shell对其中的括号进行错误解析

tcpdump 'gateway snup and (port ftp or ftp-data)'

(3)打印不是本地网络的数据包

tcpdump ip and not net localnet

3.3监视指定协议的数据包

(1)打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机。(nt:localnet,实际使用时要真正替换成本地网络的名字)

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

(2)打印长度超过576字节, 并且网关地址是snup的IP数据包

tcpdump 'gateway snup and ip[2:2] > 576'

ip[2:2]表示整个ip数据包的长度。

(3)打印除'echo request'或者'echo reply'类型以外的ICMP数据包(比如,需要打印所有非ping 程序产生的数据包时可用到此表达式 。(nt: ‘echo reuqest' 与 ‘echo reply' 这两种类型的ICMP数据包通常由ping程序产生))

tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

3.4监视指定主机和端口的数据包

(1)抓取主机100.94.138.110所有经由接口eth1接收的数据包,且端口号是20700。

tcpdump -i eth1 -lnXps0 dst 100.94.138.110 and dst port 20700 -c 10

命令选项说明:lnXps0请参照上文的命令选项详解,-c 10表示只捕捉10个数据包。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对易采站长站的支持。

参考文档

[1]维基百科.tcpdump

[2]tcpdump官方网站

[3]Linux tcpdump命令详解

您可能感兴趣的文章:

Linux tcpdump命令的用法详细解析linux使用tcpdump命令监视指定网络数据包的方法Linux tcpdump操作命令详解Linux tcpdump命令详解大全Linux基础学习之利用tcpdump抓包实例代码在Linux中使用tcpdump命令捕获与分析数据包详解