linux下tcpdump的常用用法总结

tcpdump 是linux系统下的抓包工具,它支持针对网络层,协议,主机,端口的过滤,并提供and,or,not等逻辑语句筛选信息。

常用的参数

-n   将ip地址,端口号以数字形式表示

-t   不打印时间戳

-i  后面接选用的网卡(连外网一般是eth0,自身相连一般是lo)

-S  将tcp报文中的序号以绝对值形式显示,tcp建立连接三次握手的时候,发送syn报文段中会含有一个isn(initial sequence number),此后发送的字节都是在此序号基础上的偏  移,如果没有-S,报文字节会以偏移形式显示

-s snaplen 从每个报文中截取snaplen字节的数据,而不是缺省的65535,如果snaplen过小,则原始数据报将会被截断,在输出行中会有类似[|proto]这样的输出,这里的proto是截断发生处的协议层名称,注意,采用更大的捕捉范围既增加了处理报文的时间,又相应的减少了报文的缓冲数量,可能导致报文的丢失。你应该把snaplen设的尽量小,只要能够容纳你需要的协议信息就可以了。设置snaplen参数值为0,即是设置为默认值65535(  -s0 和 -s 0效果一样的,都表示不截断包)  -s 10 会显示在以太网处截断,-s 20会显示在ip处截断

-w  将数据写入文件

这些是常用的参数 ,更具体的可以通过man tcpdump查


基本语法

默认启动

tcpdump

 不指定网卡的话,默认会监视第一个网卡eth0

过滤主机

-------------

抓取所有经过eth0,源地址或目的地址是115.123.141.1的数据包

#sudo tcpdump -nt -i eth0 host 192.168.1.1

源主机

#sudo tcpdump -nt -i eth0  src host 192.168.1.1

目的主机

#sudo tcpdump -nt -i eth0  dst  host 192.168.1.1

过滤端口

-----------

抓取所有经过eth0,源端口或目标端口是51的数据包

#tcpdump -i eth0  port 51

源端口

#tcpdump -i eth0 src port 51

目的端口

#tcpdump -i eth0 dst port 51

网络过滤

------------

#tcpdump -i eth0 net 192.168

#tcpdump -i eth0 src net 192.168

#tcpdump -i eth0 dst net 192.168

协议过滤

-----------

#tcpdump -i eth0 arp

#tcpdump -i eth0 ip


常用表达式

非: !or "not"(去掉双引号)

与: && or "and"

或:|| or "or"

抓取所有经过eth0,目的地址是192.168.1.254 或 192.168.1.200,端口是80的tcp 数据

#tcpdump -i eth0 '((tcp)  and ((dst host 192.168.1.254) ||( dst host 192.168.1.200)) and (port 80))'

抓取所有经过 eth0,目标 MAC 地址是 00:01:02:03:04:05 的 ICMP 数据

#tcpdump -i eth0 '((icmp) and (ether dst host 00:01:02:03:04:05))'

- 抓取所有经过 eth1,目的网络是 192.168,但目的主机不是 192.168.1.200 的 TCP 数据

# tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'

抓取helios与hot 或者与ace 之间通信的数据包

#tcpdump -i eth1 host helios and \( hot or ace \)

抓取ace 与任何其他主机之间通信的ip数据包,但不包括与helios之间通信的数据包

#tcpdump  ip host ace and not helios

抓取所有通过网关snup的ftp数据包(表达式被单引号括起来了,可以防止shell对其中的括号错误解析)

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


只抓syn包

#tcpdump -i eth0 'tcp[tcpflags] = tcp-syn'

抓syn,ack包

#tcpdump -i eth0 'tcp[tcpflags] & tcp-syn!=0  and  tcp[tcpflags] & tcp-ack!=0'

更详细深入的可以参考

http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值