一次端口监听正常,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请求或响应的一部分内容。
相关文章:
一次端口监听正常,tcpdump无法监听到指定端口报文问题分析
tcpdump命令: sudo tcpdump -i ens2f0 port 6471 -XXnnvvv 下面是各个部分的详细解释: 1.tcpdump: 这是用于捕获和分析网络数据包的命令行工具。 2.-i ens2f0: 指定监听的网络接口。ens2f0 表示本地网卡),即计算机该指定网络接口捕…...
解决InnoDB: Failing assertion: !lock->recursive
背景: 在arm服务器里运行MySQL5.7.22版本 报错信息 : 2024-11-25T08:07:36.24182508:00 856 [Note] Multi-threaded slave statistics for channel : seconds elapsed 126; events assigned 53431297; worker queues filled over overrun level 0; …...

基于微信小程序的外卖点餐系统设计与实现ssm+论文源码调试讲解
4系统概要设计 4.1概述 本系统后台采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原…...
Helm Chart 实现 Kubernetes 应用的多环境部署与镜像更新
在现代软件开发中,通常需要将应用部署到多个环境(如开发环境、测试环境、生产环境),并且在不同环境中使用不同的配置和镜像版本。Helm Chart 提供了强大的模板化和参数化功能,可以轻松实现多环境部署和镜像更新。本文将详细介绍如何使用 Helm Chart 实现 Kubernetes 应用的…...

“腾讯、钉钉、飞书” 会议开源平替,免费功能强大
在数字化时代,远程办公和线上协作越来越火。然而,市面上的视频会议工具要么贵得离谱,要么功能受限,甚至还有些在数据安全和隐私保护上让人不放心。 今天开源君给大家安利一个超棒的开源项目 - Jitsi Meet,这可是我在网…...

我谈区域偏心率
偏心率的数学定义 禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P312 区域的拟合椭圆看这里。 Rafael Gonzalez的二阶中心矩的表达不说人话。 我认为半长轴和半短轴不等于特征值,而是特征值的根号。…...

思科交换机telnet配置案例
目录 1.telnet简述2.网络拓扑3.设备说明4.网络配置4.1 电脑PC ip设置4.2 网络交换机telnet配置 5.小结 1.telnet简述 Telnet是远程登录服务的一个协议,该协议定义了远程登录用户与服务器交互的方式。它允许用户在一台联网的计算机上登录到一个远程分时系统中&#…...

机器学习:支持向量机
支持向量机(Support Vector Machine)是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的广义线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。 假设两类数据可以被 H x : w T x…...
人工智能前沿技术进展与应用前景探究
一、引言 1.1 研究背景与意义 人工智能作为一门极具变革性的前沿技术,正深刻地改变着人类社会的各个层面。从其诞生之初,人工智能便承载着人类对智能机器的无限遐想与探索。自 20 世纪中叶起,人工智能踏上了它的发展征程,历经了…...

(一)HTTP协议 :请求与响应
前言 爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。 今天的HTTP协议,会有助于我们更好的了解网络。 一、什么是HTTP协议 (1)定义 HTTP(超文本传输协议ÿ…...
什么是网络爬虫?Python爬虫到底怎么学?
最近我在研究 Python 网络爬虫,发现这玩意儿真是有趣,干脆和大家聊聊我的心得吧!咱们都知道,网络上的信息多得就像大海里的水,而网络爬虫就像一个勤劳的小矿工,能帮我们从这片浩瀚的信息海洋中挖掘出需要的…...
NR_shell运行流程简析
nr_shell 是一套开源 shell 框架,基于框架可创建终端交互功能。 为了记录终端输入指令,以及进行解析处理,nr_shell 提供了一套 cmd 结构体,具体如下:typedef struct static_cmd_function_struct {char cmd[NR_SHELL_CM…...
CSS Fonts(字体)
CSS Fonts(字体) 在网页设计中,字体是传达信息情感和风格的关键元素。CSS(层叠样式表)提供了丰富的字体样式和属性,使得网页设计者能够根据需求选择合适的字体,从而提升用户体验。本文将详细介绍CSS字体相关的知识,包括字体的选择、加载、样式设置等。 字体的选择 选…...

基于Django的Boss直聘IT岗位可视化分析系统的设计与实现
【Django】基于Django的Boss直聘IT岗位可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为主要开发语言,利用Django这一高效、安全的W…...
linux系统中的 scp的使用方法
SCP(Secure Copy Protocol)是一种通过加密的方式在本地主机和远程主机之间安全地传输文件的协议。 它是基于SSH协议的扩展,允许用户在不同主机之间进行文件复制和传输,是Linux和Unix系统中常用的工具之一。 在嵌入式Linux软件的…...
x5music3.0 admin_index.php 后台权限绕过漏洞复现(附脚本)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

【单链表算法实战】解锁数据结构核心谜题——相交链表
题目如下: 解题过程如下: 相交链表只可以在中间任意位置/头/尾结点相交,如下图: 一个next指针只能指向一块地址,所以不会出现这种情况: 在返回相交链表的起始结点之前先要判断两个链表是否相交࿰…...

Crewai框架添加日志功能
一开始看官方文档以为要用callback这个注释在一个自定义函数上输出日志,结果弄半天都没有结果,最后发已经有现成的方法了(一开始搜log都没搜到这个方法) 只要添加这个output_log_file配置参数即可,由于我的项目只有一…...

【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文
生态共生与数值模拟:生态系统模型的物种种群动态研究 摘要1Introduction1.1Problem Background1.2Restatement of the Problem1.3Our Work 2 Assumptions and Justifications3 Notations4 模型的建立与求解4.1 农业生态系统模型的建立与求解4.1.1 模型建立4.1.2求解…...

Linux(Centos、Ubuntu) 系统安装jenkins服务
该文章手把手演示在Linux系统下如何安装jenkins服务、并自定义jenkins数据文件位置、以及jenkins如何设置国内镜像源加速,解决插件下载失败问题 安装方式:war包安装 阿里云提供的war下载源地址:https://mirrors.aliyun.com/jenkins/war/?s…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...