linux下tcpdump的常用用法总结

来源:互联网 发布:sql日期转换成字符串 编辑:程序博客网 时间:2024/06/06 15:49

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


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 给小车撞到电动单车怎么办 车停在路边被自行车撞怎么办 撞了碰瓷的人怎么办 谷丙转氨酶46该怎么办 渣土车开飞机了怎么办 自己车撞自己车怎么办 撞了人没钱赔怎么办 闯红灯扣了6分怎么办 开共享汽车闯红灯了怎么办 新手如果不小心闯红灯怎么办 红绿灯左转车道直行了怎么办 跟着大车后面闯了红灯怎么办 宝宝私处好红怎么办呢 甲亢难怀孕怎么办才好 怀孕8周查出甲亢怎么办 电动车被交警拖走了怎么办 电动车车被城管拖走了怎么办 12123地理反编码失败怎么办 苹果手机地理反编码失败怎么办 城管执法过程被打怎么办 老婆看不起老公不让碰怎么办 老婆总不让碰该怎么办 机动车扣满12分怎么办 吊车吊运货物失控应该怎么办 车辆违章扣6分怎么办 最新交通法扣满12分怎么办 违章停车单丢了怎么办 违停告知单掉了怎么办 违章停车扣3分怎么办 驾驶证被扣12分怎么办 被贴条了条丢了怎么办 车停路边连续几天被贴条怎么办 车停在路边限号怎么办 违停的罚单丢了怎么办 借道左转红灯了 怎么办 道路上有锯齿线标志怎么办 被领导臭骂了一顿怎么办 酒驾撞了人逃跑怎么办处理 荣耀9home键掉了怎么办 今天开车把老太婆撞了怎么办 交通责任认定书不合理怎么办