一次端口监听正常,tcpdump无法监听到指定端口报文问题分析

tcpdump命令:

sudo tcpdump -i ens2f0 port 6471 -XXnnvvv

下面是各个部分的详细解释:

1.tcpdump: 这是用于捕获和分析网络数据包的命令行工具。
2.-i ens2f0: 指定监听的网络接口。ens2f0 表示本地网卡),即计算机该指定网络接口捕获的网络流量。
3.port 6471: 过滤条件,指定只捕获涉及端口 6471 的数据包。端口 6471 可能是某个应用程序的通信端口。
4.-XX: 表示显示每个数据包的完整内容,包括数据包的十六进制和 ASCII 形式的输出。相当于显示包的详细数据,以便深入分析其内容。
5.-nn: 防止 tcpdump 将 IP 地址和端口号转换为域名和服务名称。直接显示原始的 IP 地址和端口号。
6.-vvv: 提高输出的详细程度,-v 表示 verbose(详细),-vv 和 -vvv 分别增加详细输出的级别。-vvv 会显示更多的协议详细信息。

上述tcpdump命令指定了网卡和port过滤报文,但是实测发现无论如何也监听不到6471端口的报文。

经过排查把命令更换为下述命令,就可以监听到报文

sudo tcpdump -i lo port 6471 -XXnnv  

分析,同一台机器上两个进程之间的通信,监听指定端口报文的时候,指定外部网络接口如ens2f0或者不指定网络接口,都无法监听到通信报文,有且只有指定网口为本地回环网络接口时,才能监听到本地通信报文即:-i lo

ifconfig如下:

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 11391857892  bytes 88144245429787 (80.1 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11391857892  bytes 88144245429787 (80.1 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

执行 sudo tcpdump -i lo port 6471 -XXnnv  后,让我们详细解析这个tcpdump -XX输出的16进制报文的各部分含义。

报文基本信息

14:37:33.881148 IP (tos 0x0, ttl 64, id 23488, offset 0, flags [DF], proto TCP (6), length 362)
10.229.120.5.28202 > 10.229.120.5.6471: Flags [P.], cksum 0x0731 (incorrect -> 0xdf5d), seq 9714:10024, ack 360, win 1539, options [nop,nop,TS val 3542503468 ecr 3542503468], length 310
  • 时间戳14:37:33.881148,表示报文捕获的时间。

  • IP头部

    • tos 0x0:服务类型字段,值为0,表示常规服务。

    • ttl 64:生存时间,值为64,表示报文最多可以经过64个路由器。

    • id 23488:标识字段,用于唯一标识主机发送的每一分组。

    • offset 0:片偏移字段,值为0,表示该报文不分片。

    • flags [DF]:不分片标志位,表示该报文不允许分片。

    • proto TCP (6):协议字段,值为6,表示上层协议为TCP。

    • length 362:整个IP报文的长度为362字节。

  • TCP头部

    • Flags [P.]:标志位,P表示推送(PSH),.表示确认(ACK)。

    • cksum 0x0731 (incorrect -> 0xdf5d):校验和,计算结果为0x0731,但实际应为0xdf5d,表示校验和错误。

    • seq 9714:10024:序列号范围,从9714到10024,表示该报文段包含310字节的数据。

    • ack 360:确认号,表示期望收到的下一个报文段的序列号为360。

    • win 1539:窗口大小,值为1539,表示接收方的接收窗口大小。

    • options [nop,nop,TS val 3542503468 ecr 3542503468]:选项字段,包含两个NOP(无操作)选项和一个时间戳选项,时间戳值为3542503468,时间戳回显值为3542503468。

    • length 310:TCP数据部分的长度为310字节。

16进制报文详细解释

0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
0x0010:  016a 5bc0 4000 4006 d7f9 0ae5 7805 0ae5  .j[.@.@.....x...
0x0020:  7805 6e2a 1947 5ebb e7b0 c247 9f08 8018  x.n*.G^....G....
0x0030:  0603 0731 0000 0101 080a d326 502c d326  ...1.......&P,.&
0x0040:  502c 0100 414a 011b 0000 0100 0000 3601  P,..AJ........6.
0x0050:  0000 0000 0ae5 7805 0819 0000 0000 0000  ......x.........
0x0060:  0000 0000 0000 0000 0000 0000 7b22 666d  ............{"fm
0x0070:  5479 7065 223a 312c 2272 6573 6f75 7263  Type":1,"resourc
0x0080:  6554 7970 6522 3a22 434c 5553 5445 524d  eType":"CLUSTERM
0x0090:  414e 4147 4552 222c 2273 7973 5479 7065  ANAGER","sysType
0x00a0:  223a 3232 3735 302c 2263 6f64 6522 3a32  ":22750,"code":2
0x00b0:  3032 3332 2c22 7265 6173 6f6e 436f 6465  0232,"reasonCode
0x00c0:  223a 3230 3233 3230 322c 2264 6573 6322  ":2023202,"desc"
0x00d0:  3a22 222c 2263 7265 6174 6554 696d 6522  :"","createTime"
0x00e0:  3a22 6e75 6c6c 222c 2263 6c65 6172 5469  :"null","clearTi
0x00f0:  6d65 223a 2232 3032 352d 3031 2d32 3620  me":"2025-01-26.
0x0100:  3134 3a33 373a 3333 222c 2272 6563 6f76  14:37:33","recov
0x0110:  6572 7974 7970 6522 3a34 2c22 6970 223a  erytype":4,"ip":
0x0120:  2231 302e 3232 392e 3132 302e 3522 2c22  "10.229.120.5",
0x0130:  706f 7274 223a 3630 3137 2c22 6473 7469  "port":6017,"dsti
0x0140:  6e66 6f22 3a22 312e 312e 312e 313a 3130  nfo":"1.1.1.1:10
0x0150:  3234 3a31 222c 2272 6573 6f75 7263 6549  24:1","resourceI
0x0160:  4422 3a22 3130 2e32 3239 2e31 3230 2e35  D":"10.229.120.5
0x0170:  3a36 3031 3722 7d00                        :6017"}
0x0000 - 0x000D:以太网头部(如果存在)
  • 0000 0000 0000 0000 0000 0000:目的MAC地址(全0,表示可能是一个原始IP报文,没有以太网封装)。

  • 0800:以太网类型字段,值为0800,表示这是一个IP报文。

0x000E - 0x0021:IP头部
  • 4500:IP版本和首部长度。4表示IP版本为IPv4,5表示IP头部长度为5个32位字节,即20字节。

  • 016a:总长度,十六进制016a转换为十进制为362,表示整个IP报文长度为362字节。

  • 5bc0:标识字段,值为5bc0,用于唯一标识主机发送的每一分组。

  • 4000:标志和片偏移字段。4表示不分片(DF位为1),00表示片偏移为0,即该IP报文不分片。

  • 4006:生存时间(TTL)和协议字段。40表示TTL为64,06表示协议为TCP。

  • d7f9:头部校验和,用于检测IP头部在传输过程中是否出现错误。

  • 0ae5 7805:源IP地址,转换为点分十进制为10.229.120.5。

  • 0ae5 7805:目的IP地址,也是10.229.120.5。

0x0022 - 0x002F:TCP头部
  • 6e2a:源端口号,十六进制6e2a转换为十进制为28202。

  • 1947:目的端口号,十六进制1947转换为十进制为6471。

  • 5ebb e7b0:序列号,值为5ebb e7b0。

  • c247:确认号,值为c247。

  • 9f08:数据偏移(高4位)和保留位(中间6位)以及紧急指针字段(低4位)。数据偏移值为9(十进制为9),表示TCP头部长度为9个32位字节,即36字节(包括20字节基本头部和16字节选项部分)。

  • 8018:标志位和窗口大小字段。80表示PSH(推送)和ACK(确认)标志位为1,18表示窗口大小为18(需要乘以2的10次方,即18 * 1024 = 18432,但这里应该是16位的窗口大小字段,直接转换为十进制为1539,表示窗口大小为1539)。

0x0030 - 0x0041:TCP头部(继续)
  • 0603:检验和,用于检测TCP报文段在传输过程中是否出现错误。

  • 0731:紧急指针字段,值为0731,但在这个报文段中紧急指针可能没有实际意义,因为紧急指针字段只有在紧急标志位为1时才有效。

  • 0000:填充字段,用于填充TCP头部,使其长度为整数个32位字节。

  • 0101:选项字段,表示TCP选项的类型和长度。01表示时间戳选项,01表示该选项长度为10字节。

  • 080a:时间戳选项的类型和子类型,08表示时间戳,0a表示时间戳回显。

  • d326 502c:时间戳值,用于TCP的拥塞控制和往返时间测量等。

  • d326 502c:时间戳回显值,用于确认对方发送的时间戳。

0x0042 - 0x0170:TCP数据部分
  • 0100:TCP数据部分的开始,这部分数据的具体含义需要根据上层应用协议来解释。例如,如果这是一个HTTP协议的数据,那么这些字节可能是HTTP请求或响应的一部分内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7889.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法每日双题精讲 —— 二分查找(寻找旋转排序数组中的最小值,点名)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#x1f4aa; 在算法的…

macOS使用LLVM官方发布的tar.xz来安装Clang编译器

之前笔者写过一篇博文ubuntu使用LLVM官方发布的tar.xz来安装Clang编译器介绍了Ubuntu下使用官方发布的tar.xz包来安装Clang编译。官方发布的版本中也有MacOS版本的tar.xz&#xff0c;那MacOS应该也是可以安装的。 笔者2015款MBP笔记本&#xff0c;CPU是intel的&#xff0c;出厂…

机器学习周报-文献阅读

文章目录 摘要Abstract 1 相关知识1.1 WDN建模1.2 掩码操作&#xff08;Masking Operation&#xff09; 2 论文内容2.1 WDN信息的数据处理2.2 使用所收集的数据构造模型2.2.1 Gated graph neural network2.2.2 Masking operation2.2.3 Training loss2.2.4 Evaluation metrics 2…

Doris Schema Change 常见问题分析

1. 什么是 Schema Change Schema Change 是在数据库中修改表结构的一种操作&#xff0c;例如添加列、删除列、更改列类型等。 ⚠️Schema Change 限制⚠️ 一张表在同一时间只能有一个 Schema Change 作业在运行。分区列和分桶列不能修改。如果聚合表中有 REPLACE 方式聚合的…

我的2024年年度总结

序言 在前不久&#xff08;应该是上周&#xff09;的博客之星入围赛中铩羽而归了。虽然心中颇为不甘&#xff0c;觉得这一年兢兢业业&#xff0c;每天都在发文章&#xff0c;不应该是这样的结果&#xff08;连前300名都进不了&#xff09;。但人不能总抱怨&#xff0c;总要向前…

C++ DLL注入原理以及示例

0、 前言 0.1 什么是DLL注入 DLL&#xff08;动态链接库&#xff09;注入是一种技术&#xff0c;通过将外部的 DLL 文件强行加载到目标进程的地址空间中&#xff0c;使得外部代码可以执行。这种技术常用于修改或扩展应用程序的行为&#xff0c;甚至用于恶意攻击。 0.2 DLL注入…

MATLAB绘图:随机彩色圆点图

这段代码在MATLAB中生成并绘制了500个随机位置和颜色的散点图。通过随机生成的x和y坐标以及颜色&#xff0c;用户可以直观地观察到随机点的分布。这种可视化方式在数据分析、统计学和随机过程的演示中具有广泛的应用。 文章目录 运行结果代码代码讲解 运行结果 代码 clc; clea…

关于使用PHP时WordPress排错——“这意味着您在wp-config.php文件中指定的用户名和密码信息不正确”的解决办法

本来是看到一位好友的自己建站&#xff0c;所以突发奇想&#xff0c;在本地装个WordPress玩玩吧&#xff0c;就尝试着装了一下&#xff0c;因为之前电脑上就有MySQL&#xff0c;所以在自己使用PHP建立MySQL时报错了。 最开始是我的php启动mysql时有问题&#xff0c;也就是启动过…

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

routeros7 adguardhome添加规则报错certificate expired

mikrokit routeros 7添加adguardhome容器。 /container/add remote-imageadguard/adguardhome:latest interfaceveth1 root-dircontainer/adgurdhome loggingyes结果发现添加不了规则&#xff0c;报证书过期。 Error: control/filtering/add_url | Couldn’t fetch filter fro…

壁纸设计过程中如何增加氛围感

在壁纸设计过程中&#xff0c;增加氛围感是提升整体视觉效果和情感传达的关键。以下是一些具体的方法和技巧&#xff0c;帮助你在设计中营造出强烈的氛围感&#xff1a; 一、色彩运用 选择主题色&#xff1a; 根据你想要传达的情感选择主色调。例如&#xff0c;温暖的色调&…

RabbitMQ模块新增消息转换器

文章目录 1.目录结构2.代码1.pom.xml 排除logging2.RabbitMQConfig.java3.RabbitMQAutoConfiguration.java 1.目录结构 2.代码 1.pom.xml 排除logging <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…

2024年度总结:技术探索与个人成长的交织

文章目录 前言年度创作回顾&#xff1a;技术深耕与分享数据库技术&#xff1a;MySQL 与 MyBatisJava 及相关技术栈计算机网络&#xff1a;构建网络知识体系思维方式的转变&#xff1a;构建技术知识体系的桥梁 项目实践&#xff1a;人工智能与智慧医疗的碰撞生活与博客的融合与平…

python:taichi 模拟一维波场

在 Taichi 中模拟一维波场&#xff0c;通常是利用 Taichi 编程语言的特性来对一维空间中的波动现象进行数值模拟&#xff0c;以下是相关介绍&#xff1a; 原理基础 波动方程&#xff1a;一维波动方程的一般形式为 &#xff0c;其中 u(x,t) 表示在位置x 和时间t 处的波的状态&…

基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪&#xff0c;使用光强和温度作为影响因素&#xff0c;电压作为输出进行建模。…

深入MapReduce——引入

引入 前面我们已经深入了HDFS的设计与实现&#xff0c;对于分布式系统也有了不错的理解。 但HDFS仅仅解决了海量数据存储和读写的问题。要想让数据产生价值&#xff0c;一定是需要从数据中挖掘出价值才行&#xff0c;这就需要我们拥有海量数据的计算处理能力。 下面我们还是…

Vue 引入及简单示例

Vue 渐进式JavaScript 框架 学习笔记 - Vue 引入及简单示例 目录 与jquery区别 Vue引入 两种方式引入 下载到本地 代码结构 简单示例 Style中引入vue.js 对vue语法进行解析 对三目运算符支持 设置变量&#xff08;状态&#xff09; 总结 与jquery区别 不需要手动操…

系统思考—问题分析

很多中小企业都在面对转型的难题&#xff1a;市场变化快&#xff0c;资源有限&#xff0c;团队协作不畅……这些问题似乎总是困扰着我们。就像最近和一位企业主交流时&#xff0c;他提到&#xff1a;“我们团队每天都很忙&#xff0c;但效率始终没见提升&#xff0c;感觉像是在…

π0:仅有3B数据模型打通Franka等7种机器人形态适配,实现0样本的完全由模型自主控制方法

Chelsea Finn引领的Physical Intelligence公司&#xff0c;专注于打造先进的机器人大模型&#xff0c;近日迎来了一个令人振奋的里程碑。在短短不到一年的时间内&#xff0c;该公司成功推出了他们的首个演示版本。这一成就不仅展示了团队的卓越技术实力&#xff0c;也预示着机器…