Tcpdump非常实用的抓包12实例

1.过滤主机
----------------------------------------------------------------

- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据
# tcpdump -i eth1 host 192.168.1.1
- 源地址
# tcpdump -i eth1 src host 192.168.1.1
- 目的地址
# tcpdump -i eth1 dst host 192.168.1.1

2.过滤端口
----------------------------------------------------------------

- 抓取所有经过 eth1,目的或源端口是 25 的网络数据
# tcpdump -i eth1 port 25
- 源端口
# tcpdump -i eth1 src port 25
- 目的端口
# tcpdump -i eth1 dst port 25

3,网络过滤
----------------------------------------------------------------

# tcpdump -i eth1 net 192.168
# tcpdump -i eth1 src net 192.168
# tcpdump -i eth1 dst net 192.168  

4.协议过滤
----------------------------------------------------------------

# tcpdump -i eth1 arp
# tcpdump -i eth1 ip
# tcpdump -i eth1 tcp
# tcpdump -i eth1 udp
# tcpdump -i eth1 icmp  

5.常用表达式
----------------------------------------------------------------

非 : ! or "not" (去掉双引号)
且 : && or "and"
或 : || or "or"

- 抓取所有经过 eth1,目的地址是 192.168.1.254 或 192.168.1.200 端口是 80 的 TCP 数据
# tcpdump -i eth1 ‘((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host
192.168.1.200)))‘
- 抓取所有经过 eth1,目标 MAC 地址是 00:01:02:03:04:05 的 ICMP 数据
# tcpdump -i eth1 ‘((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)))‘

6.只抓 SYN 包
----------------------------------------------------------------

# tcpdump -i eth1 ‘tcp[tcpflags] = tcp-syn‘

7.抓 SYN, ACK
----------------------------------------------------------------

# tcpdump -i eth1 ‘tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0‘  

8.抓 SMTP 数据

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

# tcpdump -i eth1 ‘((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))‘
抓取数据区开始为"MAIL"的包,"MAIL"的十六进制为 0x4d41494c。

9.抓 HTTP GET 数据
----------------------------------------------------------------

# tcpdump -i eth1 ‘tcp[(tcp[12]>>2):4] = 0x47455420‘
"GET "的十六进制是 47455420

10.抓 SSH 返回
----------------------------------------------------------------

# tcpdump -i eth1 ‘tcp[(tcp[12]>>2):4] = 0x5353482D‘
"SSH-"的十六进制是 0x5353482D

# tcpdump -i eth1 ‘(tcp[(tcp[12]>>2):4] = 0x5353482D) and (tcp[((tcp[12]>>2)+4):2]
= 0x312E)‘抓老版本的 SSH 返回信息,如"SSH-1.99.."

11.抓 DNS 请求数据
----------------------------------------------------------------

# tcpdump -i eth1 udp dst port 53

12.实时抓取端口号8000的GET包,然后写入GET.log
----------------------------------------------------------------

tcpdump -i eth0 ‘((port 8000) and (tcp[(tcp[12]>>2):4]=0x47455420))‘ -nnAl -w /tmp/GET.log

其他
----------------------------------------------------------------
-c 参数对于运维人员来说也比较常用,因为流量比较大的服务器,靠人工 CTRL+C 还是
抓的太多,于是可以用-c 参数指定抓多少个包。

# time tcpdump -nn -i eth0 ‘tcp[tcpflags] = tcp-syn‘ -c 10000 > /dev/null
上面的命令计算抓 10000 个 SYN 包花费多少时间,可以判断访问量大概是多少。
时间: 2024-10-10 17:56:07

Tcpdump非常实用的抓包12实例的相关文章

tcpdump非常实用的抓包实例

原文地址:http://blog.csdn.net/nanyun2010/article/details/23445223 详细的文档见tcpdump高级过滤技巧 基本语法 ========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# tcpdump -i eth1 host 192.168.1.1- 源地址# tcpdump -i eth1 src host 192.168.1.1- 目的地址# tcpdump -i eth1 dst

python+pcap+dpkt 抓包小实例

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 """ 网络数据包捕获与分析程序 """ 5 6 import pcap 7 import dpkt 8 import json 9 import re 10 import time 11 from urllib import unquote 12 13 # 过滤输出目标ip 14 dst_lists = [ 15 '203.66.1.21

TCPDUMP(命令行操作)-抓包、筛选、高级筛选、过程文档记录

TCPDUMP No-GUI的抓包分析工具 Linux.Unix系统默认安装 TCPdump-–抓包 抓包 默认只抓68个字节 tcpdump -i eth0 -s 0 -w file.pcap tcpdump -i eth0 port 22 读取抓包文件 Tcpdump -r file.pcap 选项介绍 -A 以ASCII格式打印出所有分组,并将链路层的头最小化. -c 在收到指定的数量的分组后,tcpdump就会停止. -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数f

【讲清楚,说明白!】tcpdump命令行网络抓包工具

目录:(一)tcpdump命令(二)tcpdump筛选 (一)tcpdump命令(1.1)tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类Unix系统下用于网络分析和问题排查的首选工具.tcpdump支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等语句来帮助你去掉无用的信息.(1.2)tcpdump指令默认只抓取每个数据包的前68个字节,通常情况下会将TCP/IP以及二层包头信息会完整抓取的,如果需要做完整的数据包的

python+pcap+dpkt抓包小实例

通过pcap与dpkt抓包解包示例: #!/usr/bin/env python # -*- coding: utf-8 -*- """ 网络数据包捕获与分析程序 """ import pcap import dpkt import json import re import time from urllib import unquote # 过滤输出目标ip dst_lists = [ '203.66.1.212', # nslookup dp

转:tcpdump抓包分析(强烈推荐)

评:示例详细,还有很不错的图解 转自:https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539134&idx=1&sn=5166f0aac718685382c0aa1cb5dbca45&scene=5&srcid=0527iHXDsFlkjBlkxHbM2S3E#rd 转自:http://www.jianshu.com/p/8d9accf1d2f1 1 起因 前段时间,一直在调线上的一个问题:线上应用

Android通过tcpdump抓包(wifi, 2g, 3g都可以)

http://blog.csdn.net/deng529828/article/details/20646197 1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump 如果这一步真机无法push,可以用adb push c:\where_you_put\tcpdump /sdcard,即先将文

Wireshark和TcpDump抓包分析对比

常见的抓包分析工具有:微软的Network Monitor和Message Analyzer.Sniff.WSExplorer.SpyNet.iptools.WinNetCap.WinSock Expert.Wireshark和linux的tcpdump等工具 今天,做了实验测试就对比分析其中的两款,其他的大家可以百度谷歌测试一哈^_^ 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用

Android tcpdump抓包应用实现

Android tcpdump抓包应用实现 Android应用很多时候都会涉及到网络,在请求网络出错时,我们可以通过抓包来分析网络请求,返回的数据等,通常我们是用tcpdump这个工具来抓包,再通过wireshark工具来分析生成的文件,关于tcpdump的使,可以从网上查一下,有很多介绍,比如:http://www.cnblogs.com/likwo/archive/2012/09/06/2673944.html.关于如何用wireshark来分析文件,本文不作介绍. 使用adb的命令来操作,