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 ...
随机推荐
- 在写EF 时把时间格式化的做法
SELECT COUNT(l.LogSeq), date_format(l.CreateDate,'%Y-%m') CreateDateByMonth FROM LOL l WHERE l.Creat ...
- 并查集,是否成树,Poj(1308)
思路: 对于每一条新的边的两个端点,是否是属于一颗树,要是的话,就不是一颗树.否则,就合并. 这里要注意的是,不能是森林,我这里WA了两次了.只不过在最后,查看每个节点的祖先是否是同一个就可以了. # ...
- spring使用bean
ApplicationContext 应用上下文,加载Spring 框架配置文件 加载classpath: new ClassPathXmlApplicationContext(“applicatio ...
- svn更改地址怎么办
开发过程中有时会遇到服务器更换地址的情况,比如之前地址是 svn://www.aaa.com 后来换成了 svn://www.bbb.com 这时候怎么办呢?分客户端和服务器端2种情况处理 客户端: ...
- UTF8与ANSI互转
在取回的结果中,如果有Unicode字符,用printf来打印的话,则会出现乱码.通过这个方法,可以判断是否为unicode字符,是的话,通过wprintf来打印.1.判断字符串是否为Unicode的 ...
- HTTP Method 详细解读(`GET` `HEAD` `POST` `OPTIONS` `PUT` `DELETE` `TRACE` `CONNECT`)--转
前言 HTTP Method的历史: HTTP 0.9 这个版本只有GET方法 HTTP 1.0 这个版本有GET HEAD POST这三个方法 HTTP 1.1 这个版本是当前版本,包含GET HE ...
- Vuex基础-Mutation
借助官网的一张图,更改 Vuex 的 store 中的状态的唯一方法是提交 mutation.不可以直接对其进行赋值改变.需要注意的是,mutations只能做一些同步的操作. 代码结构: ...
- matlab linux下无界面运行
今日做吸引域的仿真,由于需要遍历100*100*100的空间,需要的时间比较长,发现程序没运行一段时间,就会出现Out of memory的错误,而且出错的部分在于截取figure内部图片的部分. 开 ...
- Pop–实现任意iOS对象的任意属性的动态变化
简介 Pop 是一个可扩展的动画引擎,可用于实现任意iOS对象的任意属性的动态变化,支持一般动画,弹性动画和渐变动画三种类型. 项目主页: pop 最新示例: 点击下载 注意: 官方代码中,并不包含实 ...
- VMware中Ubuntu开机时停在启动界面,不进入X-window的解决办法
启动Ubuntu虚拟机时,停在这个画面不动: 试了若干次,都是这样.尝试了新建一个虚拟机然后把.vmdk文件拷过去启动,无法解决. 尝试重启,在这个界面按esc进入grub: 选择恢复模式 recov ...