linux之tcpdump抓包工具_tcpdump免安装-程序员宅基地

技术标签: 网络专栏  网络  运维  linux  tcpdump  抓包  

tcpdump简介

  • linux作为网络服务器,特别事作为路由器和网关时,数据的采集和分析时不可少的。tcpdump时linux中强大的网络数据采集分析工具之一。
  • 用简单的话来定义tcpdump就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
  • 作为互联网上的经典的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。
  • tcpdump的总结输出格式为:系统时间 来源主机 端口 > 目标端口.端口 数据包参数

tcpdump的使用及命令格式

tcpdump采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]

[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]

[ -T 类型 ] [ -w 文件名 ] [表达式]

tcpdump的选项介绍

-a 将网络地址和广播地址转变成名字
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以C语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-q 快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X 输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX 输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-D 列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析;
-nn 除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在IP包中可以包括ttl和服务类型的信息;
-P 指定要抓取的包是流入还是流出的包。可以给定的值为"in"、“out"和"inout”,默认为"inout"
-v 当分析和打印的时候,产生详细的输出。
-vv 输出详细的报文信息;
-vvv 产生比-vv更详细的输出。
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-i 指定监听的网络接口;
-r 从指定的文件中读取包(这些包一般通过-w选项产生);
-w 直接将包写入文件中,并不分析和打印出来;
-T  将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议)

表达式

  • 类型
    host,net,port,portrange
    例如:host 192.168.182.142,net 128.3,port 80,portrange 6000-6008

  • 目标
    src,dst,src or dst,src and dst

  • 协议
    tcp,udp,icmp,ip,ether,ip6,arp若不给协议,则默认匹配所有可能的类型

表达式之间可以使用修饰符 “and / && / or || / not / ! “等进行连接组成复杂的表达式来完成更复杂的工作;使用”()“可以用来表示优先级的高低,但是()会被shell解释成其他意思,必要的时候需要使用(反斜杠来进行转义),需要的时候也可以用引号将其引起来:”()”

在使用tcpdump之前我们需要先了解OSI七层网络协议及各层的作用

七层网络协议

从下往上依次是: 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
OSI层数 作用 协议
应用层 文件传输,电子邮件,文件服务,虚拟终端 http,ftp,DNS,SNMP,telnet,TFTP,SMTP
表示层 数据格式化,定义数据格式及数据加密 无协议
会话层 解除或建立与其他接点的联系 无协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,icmp,RIP,OSPF,BGP
数据链路层 传输有地址的帧,错误检测功能 PPP,ARP,RARP等
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,802.3,IEEE802

TCP/UDP协议

TCP和UDP属于传输层的协议类型。TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所要发送的数据包开辟好通道,然后再进行数据的发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。TCP一般用于对数据安全或数据完整性要求较高的应用;而UDP则是用于数据可靠性要求较低,数据传输快的应用。TCP支持的协议有:telnet、FTP、SMTP等;UDP支持NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(域名解析)、TFTP(通用文件传输协议)等
TCP/IP协议与底层的物理和数据链路等无关

tcpdump抓包

1. 列出可以抓包的网络接口

tcpdump需要使用root用户的权限
[root@192 ~]# tcpdump -D
1.ens160 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
7.usbmon0 (All USB buses) [none]
8.usbmon1 (USB bus number 1)
9.usbmon2 (USB bus number 2)

2. 监视指定网络接口的数据包

[root@192 ~]# tcpdump -i ens160

3. 监视指定主机的数据包

// host 后面可以接主机名或者IP地址,但是主机名为localhost不可以
[root@test ~]# tcpdump -i ens160 host test

4. 打印test和test1或test和test2之间通信的数据包

[root@test ~]# tcpdump -i ens160 host test and \(test1 or test2\)

5. 打印test与其他主机之间通信的IP数据包,但是不包括与test2之间的数据包

[root@test ~]# tcpdump -i ens160 host test and not test2

6. 截获主机test发送的所有数据包

// src表示数据包来自的地方成为源
[root@test ~]# tcpdump -i ens160 src host test

7. 监视所有发送到主机test1的数据包

// dst表示数据包去的目的地
[root@test ~]# tcpdump -i ens160 dst host test1

8. 监视指定主机和端口的数据包

[root@test ~]# tcpdump -i ens160 port 3306 and host test1

9. 监视指定网络的数据包

// 表示的是本机与192.168网段间通信的数据包,-c 5 表示只抓取5个包
[root@test ~]# tcpdump -i ens160 -c 5 net 192.168

10. 抓取ping包

[root@test ~]# tcpdump -c 5 -nn -i ens160

11. 抓取本机的80端口号

[root@test ~]# tcpdump -v -c 5 -nn -i ens160 tcp dst port 80

12. 解析包数据

[root@test ~]# tcpdump -c 5 -q -XX -vvv -nn -i ens160 tcp dst port 3306

13. 抓取指定端口范围的流量

[root@test ~]# tcpdump -ni ens160 portrange 80-10051

14. 抓取指定网段的流量

[root@test ~]# tcpdump -ni ens160 net 192.168.1.0/24

15. 抓取ens160网卡上所有的arp数据包

[root@test ~]# tcpdump -ni ens160 arp

16. 抓取指定客户端访问 ssh 的数据包

[root@test ~]# tcpdump -v -ni ens160 src 192.168.182.142 and dst port 22

17. 抓取从某个网段来,到某个网段去的流量

[root@test ~]# tcpdump -ni ens160 net 192.168.1.0/24 and dst net 100.0.0.0/8 or 172.16.0.0/16

18. 抓取来自某个主机,发往非 ssh 端口的流量

[root@test ~]# tcpdump -ni ens160 src 172.16.0.0 and not dst port 22
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_60387497/article/details/123441922

智能推荐

Tomcat 连接池的配置-程序员宅基地

文章浏览阅读98次。转录笔记:不过遗憾的是,如下几种方法都没有在我的机器上配置成功(Tomcat5.5.17 + WinXPSP2)。正确配置见我自己的评论,Tomcat 的日志中没发现什么错误,看上去都很正常,但是测试程序却老是提示同样的错误:Error occurred:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC drive..._tomcat xianchenchi

Java 9 逆天的十大新特性_java最新版本是几-程序员宅基地

文章浏览阅读110次。在介绍java9之前,我们先来看看java成立到现在的所有版本。1990年初,最初被命名为Oak;1995年5月23日,Java语言诞生;1996年1月,第一个JDK-JDK1.0诞生;1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;1996年9月,约8.3万个网页应用了Java技术来制作;1997年2月18日,JDK1.1发布;1997年4月2日,JavaOne会议召开,参与者逾一万人,..._java最新版本是几

python正则匹配常见错误_python正则匹配出错-程序员宅基地

文章浏览阅读478次。for line in f:searchObj = re.search(r’static bl_u8_t__attribute__((section(".my_f180")))f180[17] = (.*)’, line)括号需要用转义字符转换_python正则匹配出错

图像处理之提取水平线与垂直线_有关垂直线的照片-程序员宅基地

文章浏览阅读663次。提取水平线与垂直线1、提取水平线与垂直线步骤输入彩色图像–imread 转换为灰度图–cvtColor转换为二值图–adaptiveThreshold进行图像的开运算(先腐蚀后膨胀)提取垂直线提取水平线api二值化:adaptiveThreshold(src, dst, maxValue, adaptiveMethod, thresholdType, blocksize, C)src:灰度图dst:二值图maxValue:二值图像最大值adapti_有关垂直线的照片

echarts x轴显示全部文字,强制显示_echarts label文字强制显示-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏2次。echarts x轴全部显示文字axisLabel: { interval:0, //强制显示文字 show: true, textStyle: { color: '#fff', fontSize:10, }},帮助到您请点赞关注,谢谢朋友们!..._echarts label文字强制显示

Fiddler捕获HTTP和HTTPS的会话和清空会话列表_fiddler清除接口-程序员宅基地

文章浏览阅读1.3k次。Title前言一、捕获HTTP会话(对HTTP协议的网站进行抓包)1.打开Fiddler2.打开浏览器,自动进行抓包3.点击会话列表中的一个或多个网站可以进行查看请求报文和响应报文。二、捕获HTTPS会话(对HTTPS协议的网站进行抓包)1.进行对HTTPS抓包选项进行配置(看图操作)2.点击会话列表中的一个或多个网站可以进行查看请求报文和响应报文。三.注意1.有时候会发现不能进行自动抓包,或者想要停止抓包,可以进行如图操作2.想要清空会话列表,点击如图按钮,点击移除所有即可,至于下面的 非-200s等_fiddler清除接口

随便推点

LeetCode1-540题汇总,希望对你有点帮助!-程序员宅基地

文章浏览阅读239次。时间很快,公众号发布的LeetCode题目,已经达到520道题了。今天把发布的1-520篇LeetCode文章整理一下,平时文章都放在比较末尾,阅读量都不高,相信很多人都没看过,如果对于算..._leetcode1-540题汇总,希望对你有点帮助!

北邮通信土著--非技术路线备忘录 (摘自北邮人论坛)_hku committee 面试 cs-程序员宅基地

文章浏览阅读3.3k次。作者:5yearszz 谨此文,感谢求职漫漫路帮助过我、与我分享过的兄弟姐妹!共勉~北邮七载,想留下些东西,为母校能继续保持就业传统之优势,尽微薄贡献! 校园 理工科背景申请各类行业非纯技术岗位可行性分析,欢迎拍砖。专业背景或求职意向不符,请绕行。 专业背景:

【人脸识别数据集】MS-Celeb-1M 下载、读取、超细处理步骤及踩坑心得-程序员宅基地

文章浏览阅读3.7k次,点赞19次,收藏29次。直接上数据集种子下载地址。​torrent种子的解压方法见(linux系统):解压种子链接:【Linux操作】常用命令整理。下载完之后大概230G,我只下载了其中对齐人(FaceimageCroppedWithAlignment.tsv)的部分,大概90G,需要提前分配一下空间。​这里提供了干净的数据集列表和重标签后的数据集列表。_ms-celeb-1m

会话技术(Cookie&Session)_服务器端会话技术-程序员宅基地

文章浏览阅读685次。会话技术会话:一次会话中包含多次请求和响应。一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。功能:在一次会话范围内的多次请求间,共享数据。客户端会话技术(Cookie)概念Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。(简单的说就是将数据保存到客户端)。快速入门(使用步骤) 1. 创建Cookie对象,绑定数据 方法:new Cookie(String name, String valu..._服务器端会话技术

Linux 音频驱动(六) ALSA音频驱动之PCM Write数据传递过程_pcm_write-程序员宅基地

文章浏览阅读8k次,点赞10次,收藏86次。目录1. 前言2. PCM Data Flow3. 总结1. 前言本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。在Linux 音频驱动(一) ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图:对于Linux来说,由于分为 user space 和kernel space,而且两者之间不能随便互相访问。因此用户如果播放音频,则需要调用copy_from_user()将用户数据从user spa_pcm_write

ajax动态选项卡,如何将动态生成的ajax内容附加到jquery ui选项卡中新添加的选项卡?...-程序员宅基地

文章浏览阅读122次。我在侧面板上有以下表格的表格:onetwothreefour当有人点击该列的某一行时,该行的标题将作为参数传递给在主面板中显示搜索结果的函数。$("#content-display").on('click', 'tr', function (){searchResults($(this).attr('title'));});该行的标题是获取请求中使用的搜索词function searchResul..._ajax动态获取 显示多个卡片