当前位置: 首页 > news >正文

在 Linux 中使用 tcp 转储命令来分析网络

前言

Tcpdump是用于分析网络和查找相关网络问题的出色工具。它会在数据包经过时捕获数据包,并向您显示网络上正在发生的事情和传入情况。该命令的输出显示在 STDOUT 上,也可以存储在文件中。

感谢开发人员,他们将Tcpdump保留为开源项目。它可以在Unix和Linux系统上免费获得。视窗有一个“微海外杠TCPDUMP用于视窗”变体,并带有相关的价格标签。

tcpdump有一长串可用的选项。在本文中,我将重点介绍经常使用的核心选项。

检查可用接口

要检查要捕获的所有可用接口,请使用-D标志作为:

sudo tcpdump -D

这将列出系统上的所有接口,包括无线和有线接口等。该标志也可以获得相同的功能:--list-interfaces

sudo tcpdump --list-interfaces

在这里插入图片描述

捕获特定接口的数据包

在不使用任何选项的情况下,Tcpdump 将扫描所有接口。该标志捕获来自特定接口的流量:-i

tcpdump -i <target-interface>

将 替换为要扫描的接口的名称。例如,在 接口 的情况下,此命令将作为:target-interfaceeth0

sudo tcpdump -i eth0

注意:从现在开始,我将使用 or 作为目标接口。因此,无论您在何处看到 -i 标志,它都将伴随界面或 eth0 eth1 eth0 eth1

预设捕获计数

该标志可用于预设要捕获的数据包数-c

例如,我们将此值设置为 4 以捕获四个数据包。在本例中,该命令将为:

sudo tcpdump -c 4 -i eth0 

在这里插入图片描述
如果未指定计数,则将使用组合键或 手动中断捕获操作。ctrl+cctrl+z

在下面的文章中,我将根据需要将标志与其他标志一起添加。这将有助于我们清晰,轻松地理解命令的输出。-c

获取详细输出

要获取命令的详细输出,可以使用标志:tcpdump-v

sudo tcpdump -c 6 -v -i eth0 

您可以使用更多标志 as 或 进一步提高详细程度。这将在终端上产生更详细的输出:-v -vv -vvv

sudo tcpdump -vv -i eth0 

以 ASCII 格式打印捕获的数据

有时,我们可能要求 Tcp 转储输出采用十六进制或 ASCII 格式。我们可以使用 ASCII 格式以及 ASCII 和十六进制格式的选项来解决这个问题:-A- XX

sudo tcpdump -XX -i eth0

在这里插入图片描述

捕获从特定源 IP 发送的数据包

如果要检查来自特定源 IP 地址的流量,请使用以下命令:

sudo tcpdump -i eth0 src <source-ip-address>

让我们将源 IP 作为并查看流量的详细信息:192.168.56.11

sudo tcpdump -i eth1 -c 5 src 192.168.56.11

在这里插入图片描述
此处的计数 5 将仅捕获前五个数据包。

捕获发送到特定目标 IP 的数据包

如果要检查发送到特定目标 IP 地址的流量,请使用以下命令:

sudo tcpdump -i eth0 dst <source-ip-address>

让我们将目标 IP 作为并查看流量的详细信息:192.168.56.11

sudo tcpdump -i eth1 -c 5 dst 192.168.56.11

在这里插入图片描述

将过滤选项与 Tcp 转储结合使用

这是缩小捕获数据范围以进行检查的好方法。这将消除不必要的流量并简化您的工作。为此,您可以根据主机、端口、协议和其他条件筛选流量。

让我们看看其中的一些:

端口号

如果要根据端口号过滤流量,例如端口 22,则按如下方式执行命令:tcpdump

sudo tcpdump -i eth0 port 22

此命令将捕获 TCP 和 UDP 流量。

协议

与端口指令类似,该指令根据特定流量过滤数据包捕获。在这里,您可以使用协议名称或协议编号作为参数值:proto

sudo tcpdump -i eth0 proto tcp
sudo tcpdump -i eth0 proto 6

令您惊讶的是,上面的两个命令是等效的。这是因为 是 TCP 的协议编号。6

主机过滤器

host 参数只是使用其 IP 过滤来自特定主机的流量:

sudo tcpdump -i eth0 host 192.168.56.10

这将捕获所有流量并从此主机流出。有趣的是,您可以将多个过滤器应用于主机,以针对特定类型的数据包流量。

例如:

sudo tcpdump -i eth1 -c 50(host 192.168.56.11) and (port 443 or port 80)"

在这里插入图片描述
在这里,我将不同的过滤规则合并到一个规则中。您可以看到此规则是过滤和流量。这是因为该规则包含端口 80443(公共网络端口)的筛选器。http https

保存捕获的数据

如果要将捕获的数据存储在文件中,可以这样操作。

sudo tcpdump -i eth0 -c 10 -w my_capture.pcap

在这里插入图片描述
将数据包计数保持在较小的值;否则,您可能需要手动停止该过程。

读取捕获的数据

您可以使用存储在文件中的数据与Wireshark或任何其他图形网络协议分析器进行分析。.pcap

您可以使用 tcp 转储本身来读取它。

tcpdump -r my_capture.pcap

在这里插入图片描述
上面的屏幕截图显示了上述文件的数据。my_capture.pcap

结语

希望您对如何使用不同的方式使用tcpdump命令有一个很好的想法。当您从远程无外设计算机捕获数据包时,这是最佳选择。

如果您想要一种更直观的方式来理解数据包捕获,请尝试使用Wireshark。

👇点击下方公众号卡片获取资料👇

相关文章:

  • 结合viewBinding实现RecyclerView组件的滚动列表显示
  • 【C++】STL——stack和queue(万字详解)
  • Kunyu安装使用教程(linux)
  • 34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
  • 数据库--mysql(SQL语句)
  • 论文分享 | SpeechFormer: 利用语音信号的层次化特性提升Transformer在认知性语音信号处理领域中的性能
  • JavaEE之CSSⅠ(前端)
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • 中国海底电缆行业发展前景及投资风险预测分析报告
  • 计算机网络【UDP与TCP协议(三次握手、四次挥手)】
  • 爱奇艺开源的高性能网络安全监控引擎
  • JAVA房产交易系统计算机毕业设计Mybatis+系统+数据库+调试部署
  • 【MySQL数据库和JDBC编程】第三章-第二节:MySQL的增删查改进阶篇
  • [深度学习] 名词解释--正则化
  • 2022第二届中国高校大数据竞赛A题(实时更新)
  • 【技术性】Search知识
  • angular学习第一篇-----环境搭建
  • bearychat的java client
  • iOS | NSProxy
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • KMP算法及优化
  • Promise面试题,控制异步流程
  • 闭包--闭包之tab栏切换(四)
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于HAProxy的高性能缓存服务器nuster
  • 如何利用MongoDB打造TOP榜小程序
  • 算法-插入排序
  • 算法之不定期更新(一)(2018-04-12)
  • 微服务核心架构梳理
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • UI设计初学者应该如何入门?
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Matlab)使用竞争神经网络实现数据聚类
  • (python)数据结构---字典
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (原)Matlab的svmtrain和svmclassify
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)linux 命令大全
  • (转)创业家杂志:UCWEB天使第一步
  • (转)母版页和相对路径
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net 生成二级域名
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • @Query中countQuery的介绍
  • @Resource和@Autowired的区别
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [1127]图形打印 sdutOJ
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [C/C++随笔] char与unsigned char区别
  • [C++][基础]1_变量、常量和基本类型