tcpdump抓包工具的基本使用
为了更好的深入理解计算机网络等相关知识,例如TCP\UDP\IP等,我们就必须利用tcpdump、Wireshark等工具对网络进行分析。本篇博文主要记录一下tcpdump这个网络分析利器的一些基本使用方法。
目录
1.tcpdump与wireshark的区别
2.tcpdump的基本使用
参考:
1.tcpdump与wireshark的区别
tcpdump 和 Wireshark 两者都是最常用的网络抓包和分析工具,当通信没有被加密的时候,可以用来抓取和读取数据包,同时更是分析网络性能必不可少的利器。
- tcpdump 仅支持命令行格式使用,常用在 Linux 服务器中抓取和分析网络包。
- Wireshark 除了可以抓包外,还提供了可视化分析网络包的图形页面。
所以,这两者实际上是可以搭配使用的,先用 tcpdump 命令在 Linux 服务器上抓包,接着把抓包的文件拖出到 Windows 电脑后,用 Wireshark 可视化分析。如果你能接受在黑框内文字分析相关协议的意思,那么直接使用tcpdump即可(无需在Wireshark上进行分析)。
当然,如果你是在 Windows 上抓包,只需要用 Wireshark 工具就可以。
2.tcpdump的基本使用
使用 tcpdump 抓包,需要管理员权限,因此下面的示例中绝大多数命令都是以 sudo 开头,或者先切换到 root 用户(sudo -i).

(1) 指定网络接口
tcpdump -i eth0
通常情况下,如果不指定网络接口, tcpdump 在运行时会选择编号最低的网络接口,也就是你的网卡,可以通过 ifconfig 指令查看自己系统的网卡信息。或者通过tcpdump -D命令列出可以抓包的网络接口。

如上所示,本机采用的是第一个名为ens33的网络接口

如上所示,可以看到我的机器中所有可以抓包的网络接口。其中特殊接口 any 可用于抓取所有活动的网络接口的数据包。

到此成功指定了我们需要抓包分析的网络接口,但是对于tcpdump输出的内容我们目前还不了解,不要急,接着往下看带你解密。
(2)理解tcpdump抓取的数据
tcpdump 能够抓取并解码多种协议类型的数据报文,如 TCP、UDP、ICMP 等等。虽然这里我们不可能介绍所有的数据报文类型,但可以分析下 ICMP 类型的数据报文,来帮助你入门。为什么采用ICMP,因为我们可以通过PING指令来观察数据包情况,而ping指令就是依据ICMP协议。
tcpdump 协议名

利用ping指令ping百度网址来理解tcpdump抓取的数据。

运行ping指令后tcpdump的抓取的结果如下:

熟悉icmp协议的人应该知道echo reques以及echo reply的含义,如果不知道可以参考我的博客。
具体的字段根据不同的报文类型会有不同,但上面这个例子是一般的格式形式。
- 第一个字段23:21:30.090166:该数据报文被抓取的系统本地时间戳。
第二个字段:IP是网络层协议类型,这里是IPv4,如果是IPv6协议,该字段值是IP6- 第三个字段:源 ip 地址和端口号
- 第四个字段:目的 ip 地址和其端口号
- 最后几个字段:就是icmp报文对应的的内容
(3) 不转换主机名、端口号等
tcpdump -nn
在上面示例中,tcpdump 默认是将 IP 地址和端口号解析为对应的接口名(显示www.baidu.com而不是显示百度的IP地址)。而通常在网络故障排查中,使用 IP 地址和端口号更便于分析问题;用 -n 选项显示 IP 地址,-nn 选项显示端口号:

(4)增加详细信息
tcpdump -v(最多可以跟随3个v)
增加一个简单 -v 标记,输出会包含更多信息,例如一个 IP 包的生存时间(ttl, time to live)、长度和其他的选项。

tcpdump 的详细信息有三个等级,你可以通过在命令行增加 v 标记的个数来获取更多的信息。
(5) 限制抓包数量
tcpdump -c num

如上所示,tcpdump 在抓取 1 个数据包后自动停止了抓包。这在有些场景中十分有用 —— 比如你只需要抓取少量的数据包用于分析。当我们需要使用过滤规则抓取特定的数据包(如下所示)时,-c 的作用就十分突出了。
(6) 保存抓包的信息
tcpdump -w /path/to/file
但很多时候,你希望把 tcpdump 的输出结果保存在文件中,最简单的方法就是利用 -w 标记。如果你后续还会检查这些网络数据,这样做就特别有用。

(7) 读取保存的抓包信息
tcpdump -r /path/to/file

以上只是tcpdump命令的基本使用,有关tcpdump更多的操作与信息可以访问man手册。
man tcpdump






tcpdump抓包工具的基本使用的更多相关文章
- tcpdump抓包工具
tcpdump抓包工具 一:TCPDump介绍 TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and ...
- linux下利用tcpdump抓包工具排查nginx获取客户端真实IP实例
一.nginx后端负载服务器的API在获取客户端IP时始终只能获取nginx的代理服务器IP,排查nginx配置如下 upstream sms-resp { server ; server ; } s ...
- linux使用tcpdump抓包工具抓取网络数据包,多示例演示
tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...
- Linux系统诊断必备技能之二:tcpdump抓包工具详解
一.简述 TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. Linux作为网络服 ...
- Linux下通过tcpdump抓包工具获取信息
介绍 tcpdump是网络数据包截获分析工具.支持针对网络层.协议.主机.网络或端口的过滤.并提供and.or.not等逻辑语句帮助去除无用的信息. tcpdump - dump traffic on ...
- tcpdump抓包工具的使用
个人原创,转载请注明,否则依法追究法律责任 2018-02-28 16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 1 不接任何参数 ...
- tcpdump 抓包工具使用
1. 常用命令 监听p4p1网卡上来自 192.168.162.14 的包 tcpdump -i p4p1 src host 192.168.162.14 tcpdump -i p4p1 dst po ...
- tcpdump抓包工具用法说明
tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包. 例如: ...
- 利用tcpdump抓包工具监控TCP连接的三次握手和断开连接的四次挥手
TCP传输控制协议是面向连接的可靠的传输层协议,在进行数据传输之前,需要在传输数据的两端(客户端和服务器端)创建一个连接,这个连接由一对插口地址唯一标识,即是在IP报文首部的源IP地址.目的IP地址, ...
随机推荐
- 花6个月写的付费专栏,免费送|仿开源框架从零到一完整实现高性能、可扩展的RPC框架
作者 渡码,阿里巴巴码农,公众号:渡码 作者,专注大数据开发.数据分析和Python技术. 关注公众号 渡码 回复关键字 manis,可获取电子书.各章节和完整源代码,并且可加入读者群一起交流问题. ...
- CF1353D Constructing the Array(优先队列)
Question 给你一个长度为n的全为0的序列,让你从1-n填数,填的位置为找出最长的0序列,如序列长度为奇数,则为(l+r)/2,为偶数,则为(l+r-1)/2 Solution 运用优先队列,将 ...
- Qt版本中国象棋开发(一)
开发目的:实现象棋人机对战简单AI,网络对战,移植到android中. 开发平台:windows10 + Qt5.4 for android 开发语言:C++ 开发过程:1.棋盘绘制: 方法一:重写 ...
- 使用 fileupload 组件完成文件的上传应用
1. 使用 fileupload 组件完成文件的上传应用 commons-dbutils-1.3.jarcommons-fileupload-1.2.1.jar 1). 需求: > 在 uplo ...
- HashiCorp遭禁不必过于担忧,博云云管产品自主可控
近日,国外知名 DevOps 服务商 HashiCorp 官网相关条款页面更新,声明中表示禁止在中国使用其 Vault 企业版产品,此事件引发国内开源界广泛关注. HashiCorp解释是由于中国的出 ...
- MD5安全吗?
MD5的破解方法目前分为两类:一类为彩虹表破解:一类为专业的MD5破解站点. 1.彩虹表 彩虹表是一个庞大的.针对各种可能的字母组合预先计算好的哈希值的集合.彩虹表不仅针对MD5算法,主流的算法都有对 ...
- 高性能可扩展mysql 笔记(四)项目分区表演示
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 登录日志的分区 如何为Customer_login_log表分区? 从以下两个业务场景入手: 用户每次登 ...
- Java实现 LeetCode 121 买卖股票的最佳时机
121. 买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不 ...
- Java实现 LeetCode 107 二叉树的层次遍历 II(二)
107. 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null, ...
- Java中BigDecimal类的常用方法
1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精 ...