Linux下通过tcpdump抓包工具获取信息
介绍
tcpdump是网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。
tcpdump - dump traffic on a network
tcpdump 的具体参数及意义:
-i :指定 tcpdump 监听的网络接口
-s :指定要监听数据包的长度
-c:指定要监听的数据包数量,达到指定数量后自动停止抓包
-w :指定将监听到的数据包写入文件中保存
-A :指定将每个监听到的数据包以 ACSII 可见字符打印
-n :指定将每个监听到数据包中的域名转换成 IP 地址后显示
-nn :将每个监听到的数据包的域名转换成 IP 、端口从应用名称转换成端口号后显示
-e :指定将监听到的数据包链路层的信息打印出来,包括源 mac 和目的 mac ,以及网络层的协议
-p :将网卡设置为非混杂模式,不能与 host或 broadcast 一起使用
-r :指定从某个文件中读取数据包
-S :指定打印每个监听到的数据包的 TCP 绝对序列号而非相对序列号 OK
以上列举了一些常用的,详细参数可点击链接查看:
https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_71/com.ibm.aix.cmds5/tcpdump.htm
示例
tcpdump 主要包括三种类型的关键字:
第一种是关于类型的关键字,主要包括 host , net , port ,例如:
#tcpdump -i eth0
@eth0为参数值,表示需要抓包的网口,这是个必需参数哦。 #tcpdump -i eth0 host 192.168.0.250
@在网口eth0上抓取主机地址为192.168.0.250的所有数据包。 #tcpdump -i eth0 net 192.168.0.0/
@在网口eth0上抓取网络地址为192.168.0./24的所有数据包 #tcpdump host 182.254.38.55
@监听本机跟主机182.254.38.55之间往来的通信包,出、入的包都会被监听。
第二种 是确定传输方向的关键字,主要包括 src , dst , src or dst , src and dst,这些关键字指明了传输的方向。例如:
#tcpdump -i eth0 port
@在网口eth0上抓取端口为80的所有数据包(注意,这里不区分是源端口还是目的端口)
当然,我们也可以指定源端口或目的端口 #tcpdump -i eth0 src port and dst port
@在网口eth0上抓取源端口为80且目的端口为6100的数据包,这里用到了and逻辑运算符
除了这三种类型的关键字外,还有其他重要的关键字,如: gateway ,broadcast , less , greater ,还有三种逻辑运算,取非运算是 'not' 、 '!' ,与运算符是 'and' 、 '&&' 、 或运算符是 'or' 、 '||' ,这些关键字可以组合起来构成强大的组合条件来满足我们的需求。
#tcpdump -i eth0 -s -nn host 192.168.0.250 and ! 192.168.0.74 and icmp -e
@抓取网口eth0上192.168.0.250与除192.168.0.74外的其他主机之间的icmp报文
#tcpdump -i eth0 -s -nn tcp and \(host 192.168.0.250 and ! 192.168.0.74\)
@抓取网口eth0上192.168.0.250与除192.168.0.74外的所有tcp数据包,
这里用到了括号,注意,在tcpdump中使用括号时必须用转义
#tcpdump -i eth0 ether src or dst :::6C:D9:A3
@抓取网口eth0上源mac地址或目的mac地址为00:::6C:D9:A3的所有数据包,
注意,这里的mac地址格式必须以':'分隔。
补充一些其他的:
#tcpdump -nn -c
-c:指定抓包数量为100
#tcpdump -nn -i eth1
-i:指定网卡为eth1
#tcpdump -nn port
port:指定端口为80
#tcpdump -nn tcp and port
:指定抓取类型为tcp且端口为80
#tcpdump -nn tcp and port and host 221.212.212.24
:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包
#tcpdump -nn tcp and port and host 221.212.212.24 -w .cap
:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包并保存在1.cap
#tcpdump -r .cap
:查看数据包的流向(但是不可以使用cat直接查看)
#tcpdump -nn tcp and port and host 221.212.212.24 > .cap
:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包并重定向到2.cap
#cat .cap
:即可查看
内容分析

Linux下通过tcpdump抓包工具获取信息的更多相关文章
- linux下利用tcpdump抓包工具排查nginx获取客户端真实IP实例
一.nginx后端负载服务器的API在获取客户端IP时始终只能获取nginx的代理服务器IP,排查nginx配置如下 upstream sms-resp { server ; server ; } s ...
- linux下使用tcpdump抓包分析tcp的三次握手
首先贴上tcp 三次握手的原理图服务器开启ftp服务并执行tcpdump抓包服务器:192.168.3.14 ftp服务客户端:192.168.3.100 服务器执行以下命令,客户端访问服务器ftp: ...
- 【转载】linux下的usb抓包方法
1 linux下的usb抓包方法 1.配置内核使能usb monitor: make menuconfig Device Drivers --> ...
- linux下的usb抓包方法
1 linux下的usb抓包方法1.配置内核使能usb monitor: make menuconfig Device Drivers --> ...
- tcpdump抓包工具
tcpdump抓包工具 一:TCPDump介绍 TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and ...
- Mac 下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- MAC下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- Linux系统诊断必备技能之二:tcpdump抓包工具详解
一.简述 TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. Linux作为网络服 ...
- linux使用tcpdump抓包工具抓取网络数据包,多示例演示
tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...
随机推荐
- 进程管理—进程描述符(task_struct)
http://blog.csdn.net/qq_26768741/article/details/54348586 当把一个程序加载到内存当中,此时,这个时候就有了进程,关于进程,有一个相关的叫做进程 ...
- ABI是编译器的开发指南
http://blog.csdn.net/soaringlee_fighting/article/details/70214785 1) ABI: 二进制应用程序接口(Application Bina ...
- 神奇的暴力数据结构——ODT
前言 \(ODT\),即珂朵莉树,又称老司机树(\(Old\ Driver\ Tree\)). 它是一个十分暴力的数据结构,可以用于各种乱搞,也非常的实用. 当然,这全要基于一个基本条件:数据随机. ...
- 模拟网页的浏览Stack(POJ1028)
题目链接:http://poj.org/problem?id=1028 注意: 1.用两个栈来模拟,一个用来存可以返回的,一个用来存可以前进的. 2.visit方法,就要将可以前进的栈清空. 3.ba ...
- linux命令之sed命令
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...
- Intel MKL 多线程设置
对于多核程序,多线程对于程序的性能至关重要. 下面,我们将对Intel MKL 有关多线程方面的设置做一些介绍: 我们提到MKL 支持多线程,它包括的两个概念:1>MKL 是线程安全的: MKL ...
- java对象传递小解析
先上代码: import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder ...
- 前端框架之bootstrap及相关技术网站
1.web框架之bootstrap bootstrap来源Twitter,是一个CSS/HTML框架,它是基于HTML,CSS,JavaScript下的,使用简洁,当中提供了很多HTML和CSS 如用 ...
- Oracle 使用Nid 修改数据库的DBID 和 Database Name
How to Change the DBID, DBNAME Using NID Utility (Doc ID 863800.1) Changing the DBID and Database Na ...
- ReactiveCocoa实战: 模仿 "花瓣",重写 LeanCloud Rest Api的iOS REST Client.
这一次我们将要讨论的是移动开发中比较重要的一环--网络请求的封装.鉴于个人经验有限,本文将在一定程度上参考 基于AFNetworking2.0和ReactiveCocoa2.1的iOS REST Cl ...