使用tcpdump拦截linux服务端网络数据

本文详细介绍了如何使用TCPdump进行高级网络数据包过滤,包括基本语法、各类过滤条件的使用,如协议、地址、端口及包长过滤,并深入探讨了IP与TCP包头的高级过滤技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法范例:

tcpdump -vv -i ens3 '((tcp)&&(host 183.239.240.48)&&(port 3001))'  -c 100 -w 12.cap

-i表示指定网络设备

后面的字串是规则,规则通常这么拼接:

非 : ! or "not"
且 : && or "and"  
或 : || or "or"

规则语句有这些:

协议类:

arp,ip,tcp,udp,icmp

地址类:

host:源或目标ip

dst host:目标ip

src host:源ip

 

port:源或目标端口.(有dst host  , src host,含义同上)

net:指定网络.(也有dst net ,src net)

按照包长:

less 100 表示少于100

greater 100 表示大于100

 

高级过滤:

根据ip包头:

ip[0]>5

从IP包头取包大小(2bytes),判断:

ip[2:2]>600

 

tcp包头也能取大小:

tcp[0:2]

 

拦截HTTP(并不一定能成功,因为头长度不固定):

0x4745 为"GET"前两个字母"GE"

0x4854 为"HTTP"前两个字母"HT"

 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

==============================================

可以通过-c参数指定抓多少个包,然后用"-w"放到文本文件

参考文章:

https://www.wains.be/pub/networking/tcpdump_advanced_filters.txt (中文翻译:http://www.veryarm.com/1751.html#12)

http://packetpushers.net/masterclass-tcpdump-expressions/

https://www.hugeserver.com/kb/install-use-tcpdump-capture-packets/

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

转载于:https://www.cnblogs.com/DragonStart/p/7519823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值