tcpdump使用说明

tcpdump会在网络接口抓取匹配布尔表达式的包,并将包的描述内容打印出来。如果系统中没有tcpdump,需要手工安装一下。本文以Centos6.5为基础进行讲解,安装tcpdump的命令:yum install -y tcpdump

在讲抓包以前,首先需要了解一下网卡的工作模式。网卡有四种模式:

广播模式(Broadcast):网卡接收广播数据

多播模式(Multicast):网卡接收多播数据

单播模式(Unicast):网卡只接收目的mac为自己的数据

混杂模式(Promiscuous):网卡接收所有通过它的数据,不管目的mac是不是自己。

通过对网卡模式的描述,我们知道,如果要抓取目的mac地址不为自己的数据包,需要开启网卡的混杂模式,windows中网卡没有模式的概念,由应用程序本身决定网卡的功能。

如果使用SSH登录到远程Linux,运行tcpdump,会发现抓到大量的数据包,这是因为tcpdump将抓到的包发送给远端,同时又抓了这个包,再显示,再抓取,造成了循环抓取。通过ctrl+c退出即可。

tcpdump的使用可以接一些可选参数

-D显示可以通过哪几个网卡抓包

# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.eth1
5.any (Pseudo-device that captures on all interfaces)
6.lo

-i 后接网卡名字,指定抓哪一个网卡的包

tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

-w 将抓取的数据保存为文件

tcpdump -i eth1 -w test5.cap
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes

-r 读取通过-w参数保存的文件

# tcpdump -r test5.cap |grep ssh
reading from file test5.cap, link-type EN10MB (Ethernet)
15:37:39.578895 IP 192.168.56.102.ssh > 192.168.56.1.50480: Flags [P.], seq 2289452744:2289452920, ack 252499783, win 153, length 176
15:37:39.579071 IP 192.168.56.1.50480 > 192.168.56.102.ssh: Flags [.], ack 176, win 256, length 0
15:37:49.814141 IP 192.168.56.1.50480 > 192.168.56.102.ssh: Flags [P.], seq 1:97, ack 176, win 256, length 96

信息简单分析如下:

15:37:39 时间

578895 ID

IP 192.168.56.102.ssh > 192.168.56.1.50480 表示从192.168.56.102的ssh端口发送到192.168.56.1的50480端口的数据

Flags 是TCP报文中的标志信息

seq TCP报文的序列号

ack 确认序列号,希望下次收到的序列号

win 窗口大小

length 包的长度

-c 收到多少个数据包后退出

# tcpdump -c 3 -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
16:04:06.258916 IP 192.168.56.102.ssh > 192.168.56.1.50480: Flags [P.], seq 2289463272:2289463512, ack 252506311, win 153, length 240
16:04:06.259849 IP 192.168.56.1.50480 > 192.168.56.102.ssh: Flags [.], ack 240, win 253, length 0
16:04:06.380007 IP 192.168.56.102.ssh > 192.168.56.1.50480: Flags [P.], seq 240:560, ack 1, win 153, length 320
3 packets captured
3 packets received by filter
0 packets dropped by kernel

-f 用数字的形式显示外部地址

-n 不把地址转换成名字

-N 不显示主机名字中的域名部分

-q 快速输出

-t 禁止显示时间戳

tcpdump 后可以使用过滤器来过滤抓取哪些数据包,主要通过BPF语言来使用。

BPF语言主要有一个标志和限定词组成,限定词有三种

第一种:指定类型

host:可以指定主机的IP或MAC

net:可以指定网络号,只给出网络号就可以,比如 tcpdump net 10.1.1 tcpdump会通过网络判断这是一个C类地址

port:指定端口

portrange:指定端口范围

第二种:指定方向

src:指定源主机或网络

dst:指定目的主机或网络

第三种:指定协议

主要包括ether,fddi,ip,ip6,arp,,rarp,tcp等

时间: 2024-10-06 00:20:36

tcpdump使用说明的相关文章

linux环境常用的性能监控和协助开发调试工具(附tcpdump常见使用方式)

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作.下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令.更多更详细的命令可以参考 https://github.com/brendangregg/perf-tools A.CPU进程相关 常用工具列举下:uptime.ps.top.mpstat.pidstat等 uptime: 查看系统运行时间,平均负载等.Load > # of CPUs may mean CPU saturation ps:可查

tcpdump移植和使用

1. 概述 tcpdump是一个用于抓取网络数据包的命令行工具,与带界面的Wireshark一样,基于libpcap库构建. tcpdump的设计目标是帮你分析包头(比如Tcp包头,udp包头),同时你可以根据包头,用它支持的表达式,过渡出你感兴趣的包,从而方便你自己处理包中数据. 2.移植 分为下面三步: 1)设置环境变量: a. vi configure.env b. 输入以下内容: ARCH=xxxxxx    #xxxxx为你的编译器目录 CC=${ARCH}-gcc CXX=${ARC

网络安全之tcpdump工具

引言 wireshark使用一款非常不错的抓包软件,在图形化界面占绝对统治地位:尽管其在字符界面下有些许选项可供使用,但终究不太方便,下面我再介绍一款NB的终端抓包工具 tcpdump 1.混杂模式 linux的网卡有混杂模式一说,当开启混杂模式后,网卡可以抓取所有的数据包,不管这个包是不是发给自己或自己发出的.由于随意截取别人的数据包存在一定安全问题,因此linux对于网卡默认是关闭混杂模式的,切只有root用户能够开启网卡混杂模式,开启方式: ifconfig ethX promisc 2.

tcpdump和ngrep抓不到本机数据包

本机上运行server(nginx)和client(curl),用tcpdump tcp port 80命令抓不到数据包,原因是: 本地环回不经过以太网卡,在用tcpdump加参数 -i lo 来抓本地环回数据. ngrep环回接口数据抓取方法:使用-d lo参数,注意参数的顺序:ngrep -W byline -d lo port 80 注意ngrep使用port 80 而不是tcp port 80,如果用tcp port 80 则无法抓取到数据.

Linux系统下安装rz/sz命令及使用说明

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令.今天,我们就简单的讲解一下如何安装和使用rz.sz命令. 1.软件安装 (1)编译安装 root 账号登陆后,依次执行以下命令: 1 cd /tmp 2 wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 3 tar zxvf lrzsz-0.1

tcpdump抓包分析具体解释

說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 非常可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行) [[email protected] ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae] [-qX] [

android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明

涉及到滑动,就涉及到VIEW,大家都知道,android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI.以下是android UI的结构示示意图: 查看源码 /** * Implement this to do your drawing. * * @param canvas the canvas on which the background w

tcpdump使用方法

tcpdump -s 0 -X host 172.16.100.111 and port 80 -w 1.dump wireshark 可以直接打开监听文件1.dump,我们就非常方便的看到结果了. 在64邮件服务器上抓从161到64的110端口的数据包 tcpdump -X -s 0 host 172.16.100.64 and 172.16.100.161 and port 110 -w pop.cap Tcpdump 监听某主机到本机某端口的数据包 tcpdump -i eth0 host

tcpdump

一.简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 二.教程 https://danielmiessler.com/study/tcpdump/#gs.yy6px80 三.实例 1)监视指定主机的数据