话不多说 , 直接上图看内容
文章插图
#显形“不可见”的网络包
网络世界中的数据包交互我们肉眼是看不见的 , 它们就好像隐形了一样 , 我们对着课本学习计算机网络的时候就会觉得非常的抽象 , 加大了学习的难度 。
但莫慌 , 自从有了两大分析网络包的利器:tcpdump 和 Wireshark , 我们“看不见”的数据包 , 再也没有那么神秘了 。
唉 , 当初大学学习计网的时候 , 要是能知道这两个工具 , 就不会学的一脸懵逼 。
TCPdump 和 Wireshark 有什么区别?
tcpdump 和 Wireshark 就是最常用的网络抓包和分析工具 , 更是分析网络性能必不可少的利器 。
- tcpdump 仅支持命令行格式使用 , 常用在 linux 服务器中抓取和分析网络包 。
- Wireshark 除了可以抓包外 , 还提供了可视化分析网络包的图形页面 。
所以 , 这两者实际上是搭配使用的 , 先用 tcpdump 命令在 Linux 服务器上抓包 , 接着把抓包的文件拖出到 windows 电脑后 , 用 Wireshark 可视化分析 。
当然 , 如果你是在 Windows 上抓包 , 只需要用 Wireshark 工具就可以 。
tcpdump 在 Linux 下如何抓包?
tcpdump 提供了大量的选项以及各式各样的过滤表达式 , 来帮助你抓取指定的数据包 , 不过不要担心 , 只需要掌握一些常用选项和过滤表达式 , 就可以满足大部分场景的需要了 。
假设我们要抓取下面的 ping 的数据包:
文章插图
要抓取上面的 ping 命令数据包 , 首先我们要知道 ping 的数据包是 icmp 协议 , 接着在使用 tcpdump 抓包的时候 , 就可以指定只抓 icmp 协议的数据包:
文章插图
那么当 tcpdump 抓取到 icmp 数据包后 , 输出格式如下:
文章插图
文章插图
从 tcpdump 抓取的 icmp 数据包 , 我们很清楚的看到 icmp echo 的交互过程了 , 首先发送方发起了 ICMP echo request 请求报文 , 接收方收到后回了一个 ICMP echo reply 响应报文 , 之后 seq 是递增的 。
我在这里也帮你整理了一些最常见的用法 , 并且绘制成了表格 , 你可以参考使用 。
首先 , 先来看看常用的选项类 , 在上面的 ping 例子中 , 我们用过 -i 选项指定网口 , 用过 -nn 选项不对 IP 地址和端口名称解析 。其他常用的选项 , 如下表格:
文章插图
接下来 , 我们再来看看常用的过滤表用法 , 在上面的 ping 例子中 , 我们用过的是 icmp and host 183.232.231.174 , 表示抓取 icmp 协议的数据包 , 以及源地址或目标地址为 183.232.231.174 的包 。其他常用的过滤选项 , 我也整理成了下面这个表格 。
推荐阅读
- 一文说清“保障房” 保障房是什么?
- 坏男孩教会我的17件事 那些坏男人教我的事
- 一文了解高岭土加工技术及特点 高岭土成分
- 教你一文看懂股票涨幅榜 股票涨幅怎么算
- |一文读懂办公室工作忌讳!
- 一文带你了解什么是Quora广告
- 私域实战|5000字精华,讲透私域社群运营!
- 一文读懂IP地址和MAC地址有什么区别和联系 mac地址是什么
- 如何教会孩子认识钟表 认识钟表课件
- 如何带领“钢铁直男”,教会他成为你心中的暖男!