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

Sniffer抓包实战:从DNS解析到TCP握手,手把手教你分析一次完整的tracert命令

Sniffer抓包实战从DNS解析到TCP握手手把手教你分析一次完整的tracert命令网络协议分析是每位网络工程师和运维人员的必修课。想象一下当你面对一个网络连接问题时能够像侦探一样通过数据包分析找出问题根源这种能力不仅酷炫而且极其实用。本文将带你深入网络协议的底层世界通过一次完整的tracert命令执行过程揭示从DNS解析到TCP握手的每一个细节。1. 实验环境搭建与工具准备在开始抓包分析前我们需要搭建一个合适的实验环境。推荐使用校园网或企业内网环境进行实验因为这些网络环境通常包含多个路由节点能够更好地展示tracert命令的工作原理。必备工具清单Sniffer软件Wireshark是最流行的网络协议分析工具支持多种协议解析命令行工具Windows系统自带的tracert或Linux/macOS下的traceroute网络连接确保实验主机能够访问互联网提示在实验前关闭不必要的网络应用程序减少干扰数据包安装Wireshark后我们需要进行一些基本配置# Linux下安装Wireshark sudo apt update sudo apt install wireshark配置Wireshark捕获过滤器可以显著提高分析效率。对于本次实验我们可以设置以下过滤器udp.port 53 || icmp || tcp.port 80这个过滤器将只捕获DNS(53端口)、ICMP和HTTP(80端口)相关的数据包避免捕获过多无关流量。2. tracert命令背后的网络原理tracert路由追踪是一个诊断工具用于确定数据包从源主机到目标主机所经过的路径。它巧妙地利用了IP协议的TTL(Time To Live)字段和ICMP协议的错误报告机制。tracert工作原理分步解析初始探测发送TTL1的UDP数据包Windows或ICMP Echo请求Linux路由器响应第一跳路由器将TTL减至0丢弃数据包并返回ICMP超时消息递增TTL逐步增加TTL值(2,3,...)直到到达目标主机目标响应目标主机返回ICMP端口不可达(UDP)或Echo回复(ICMP)消息下表比较了不同操作系统下tracert的实现差异特性Windows tracertLinux traceroute协议UDP(高端口)ICMP Echo请求默认探测次数3次/跳3次/跳超时时间4秒5秒最大跳数3030理解这些底层原理对于正确解读抓包数据至关重要。在实际抓包分析时我们需要特别注意ICMP报文的类型字段Type11, Code0TTL超时来自中间路由器Type3, Code3端口不可达来自目标主机Windows tracertType0Echo回复来自目标主机Linux traceroute3. 完整抓包分析从DNS到路径发现现在让我们通过一个实际案例逐步分析执行tracert www.example.com时的完整网络交互过程。3.1 DNS解析阶段任何域名追踪的第一步都是DNS解析。在我们的实验中执行tracert命令后首先会观察到一组DNS查询数据包No. Time Source Destination Protocol Info 1 0.000000 192.168.1.100 8.8.8.8 DNS Standard query A www.example.com 2 0.025143 8.8.8.8 192.168.1.100 DNS Standard query response A 93.184.216.34关键字段解析查询类型A表示请求IPv4地址事务ID匹配查询与响应如0x3a8f响应时间反映DNS服务器性能本例25ms在校园网环境中你可能会看到先向本地DNS服务器查询如果没有记录再递归查询上级服务器。3.2 ICMP路径发现阶段DNS解析完成后tracert开始发送探测包。以下是典型的Windows tracert抓包片段No. Time Source Destination Protocol Info 3 1.002345 192.168.1.100 93.184.216.34 UDP Source port: 33434 Destination port: 33434 4 1.005678 192.168.1.1 192.168.1.100 ICMP Time-to-live exceeded 5 1.102345 192.168.1.100 93.184.216.34 UDP Source port: 33435 Destination port: 33435 6 1.205678 10.0.0.1 192.168.1.100 ICMP Time-to-live exceeded ...分析要点TTL递增模式第一个包TTL1第二个TTL2依此类推UDP端口变化每次探测使用不同源端口33434, 33435,...ICMP响应来自各跳路由器的TTL超时消息3.3 完整路径重构通过收集所有ICMP超时消息的源IP地址我们可以重建完整路径Hop IP Address RTT(ms) 1 192.168.1.1 3.3 2 10.0.0.1 100.5 3 203.0.113.45 15.2 4 93.184.216.34 25.1注意某些路由器可能配置为不响应ICMP导致显示为* * *4. 高级分析与故障排查技巧掌握了基础分析后我们可以进一步挖掘抓包数据中的有价值信息。4.1 网络延迟分析通过比较连续跳数的RTT(往返时间)可以识别网络瓶颈# 简单的RTT分析示例 rtts [3.3, 100.5, 15.2, 25.1] for i in range(1, len(rtts)): hop_delay rtts[i] - rtts[i-1] print(fHop {i}→{i1} delay: {hop_delay:.1f}ms)输出结果Hop 1→2 delay: 97.2ms Hop 2→3 delay: -85.3ms Hop 3→4 delay: 9.9ms异常值可能表明突然增加的延迟跨运营商互联点拥塞负延迟时钟不同步或路由变化导致测量不准确4.2 常见问题诊断案例1tracert在某一跳停止可能原因防火墙阻止ICMP响应网络设备配置问题路由环路诊断步骤检查后续跳数是否有响应尝试从不同源地址tracert使用tcptraceroute等替代工具案例2DNS解析成功但tracert失败排查要点验证目标IP是否可达ping测试检查中间网络是否允许UDP/ICMP通过确认本地防火墙设置4.3 安全考量与最佳实践在进行网络诊断时需注意权限在企业网络中进行抓包可能需要管理员授权隐私避免在公共网络捕获包含敏感信息的数据包资源长时间抓包会消耗大量磁盘空间建议使用捕获过滤器设置环形缓冲区定期保存分析结果# Wireshark命令行工具dumpcap的使用示例 dumpcap -i eth0 -f udp port 53 or icmp -b filesize:10000 -w tracert.pcapng5. 扩展实验对比不同工具的实现差异为了深入理解路由追踪技术我们可以对比不同工具的工作机制。5.1 Windows tracert vs Linux traceroute协议层面差异Windows使用UDP数据包默认端口33434开始Linux默认使用ICMP Echo请求tcptraceroute使用TCP SYN包可绕过某些防火墙5.2 可视化分析工具除了命令行工具还可以使用mtr结合traceroute和ping的实时诊断工具PingPlotter图形化路由追踪工具Wireshark I/O图表可视化延迟变化典型mtr输出Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.1.1 0.0% 10 2.1 2.3 1.9 3.2 0.4 2. 10.0.0.1 0.0% 10 12.3 11.9 10.1 14.2 1.2 3. 203.0.113.45 0.0% 10 13.2 12.8 11.5 15.0 1.0 4. 93.184.216.34 0.0% 10 25.1 24.8 23.1 27.2 1.35.3 编程实现简易traceroute理解原理后我们可以用Python实现一个简易的tracerouteimport socket import struct import time def traceroute(dest, max_hops30, timeout2): port 33434 recv_socket socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP) send_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) recv_socket.settimeout(timeout) for ttl in range(1, max_hops1): send_socket.setsockopt(socket.IPPROTO_IP, socket.IP_TTL, ttl) send_socket.sendto(b, (dest, port)) try: start_time time.time() _, curr_addr recv_socket.recvfrom(512) curr_addr curr_addr[0] rtt (time.time() - start_time) * 1000 print(f{ttl}\t{curr_addr}\t{rtt:.2f}ms) if curr_addr dest: break except socket.timeout: print(f{ttl}\t*\t*\tRequest timed out) send_socket.close() recv_socket.close() traceroute(www.example.com)

相关文章:

Sniffer抓包实战:从DNS解析到TCP握手,手把手教你分析一次完整的tracert命令

Sniffer抓包实战:从DNS解析到TCP握手,手把手教你分析一次完整的tracert命令 网络协议分析是每位网络工程师和运维人员的必修课。想象一下,当你面对一个网络连接问题时,能够像侦探一样通过数据包分析找出问题根源,这种能…...

AstrBot:一体化开源AI聊天机器人平台部署与架构解析

1. 项目概述:一个开源的、全能的AI聊天机器人平台 如果你正在寻找一个能够无缝接入你日常使用的QQ、微信、飞书、钉钉、Telegram等主流即时通讯软件,并且功能强大到足以构建个人AI伴侣、智能客服、自动化助手乃至企业知识库的解决方案,那么A…...

抖音下载神器:douyin-downloader完整使用指南,轻松保存无水印视频

抖音下载神器:douyin-downloader完整使用指南,轻松保存无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and …...

如何用FanControl打造完美静音的Windows电脑散热方案?

如何用FanControl打造完美静音的Windows电脑散热方案? 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa…...

从实对称到Hermite矩阵:量子计算与机器学习中的复数内积与共轭转置指南

从实对称到Hermite矩阵:量子计算与机器学习中的复数内积与共轭转置指南 在量子计算和复值神经网络的研究中,我们常常需要处理复数矩阵和向量。与实数情况不同,复数域中的线性代数运算需要引入共轭转置的概念。本文将深入探讨Hermite矩阵、酉矩…...

宠物寄养民宿淡旺季定价对应盈亏智能测算表制作。

一、实际应用场景描述宠物寄养民宿通常呈现明显的季节性波动:- 节假日、寒暑假为旺季- 工作日、非假期为淡季经营者需要根据不同季节的:- 入住率- 客单价- 固定成本与变动成本来判断:- 当前定价是否合理- 能否覆盖成本- 不同季节的盈亏平衡点…...

Waymo数据集太大下不动?试试只下载‘训练集0000’并快速验证你的检测模型

Waymo数据集高效使用指南:快速验证2D目标检测模型的轻量化方案 在自动驾驶算法开发领域,Waymo开放数据集因其规模庞大、标注精细而备受研究者青睐。但对于个人开发者、在校学生或算力有限的团队来说,动辄数百GB的完整数据集下载和处理过程往…...

别再只会测距了!用Arduino+HC-SR04超声波模块做个智能防撞小车(附完整代码)

从测距到避障:用Arduino和HC-SR04打造智能防撞小车的完整指南 超声波测距模块在创客项目中一直扮演着重要角色,但大多数教程止步于基础的距离测量。今天,我们要将这个看似简单的传感器玩出新高度——打造一台能够自主避障的智能小车。这不仅是…...

智能筛选企业高风险账务,提前规避税务稽查自查实操。

一、实际应用场景描述在中小企业财务日常工作中,会计人员常面临以下场景:- 每月大量凭证、发票、科目余额数据- 税务稽查指标逐年细化(如进销项匹配、费用异常波动)- 人工筛查效率低,容易漏判高风险点本程序的目标是在…...

Outfit字体完整指南:9种字重的开源几何无衬线字体如何重塑品牌视觉系统

Outfit字体完整指南:9种字重的开源几何无衬线字体如何重塑品牌视觉系统 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专为现代品牌自动化设计的开源几何无衬线字体…...

GPU显存稳定性深度解析:memtest_vulkan实战指南与高效检测方案

GPU显存稳定性深度解析:memtest_vulkan实战指南与高效检测方案 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 在GPU计算日益普及的今天&#xff0c…...

KoboldAI完整配置指南:打造你的专属本地AI写作助手

KoboldAI完整配置指南:打造你的专属本地AI写作助手 【免费下载链接】KoboldAI-Client For GGUF support, see KoboldCPP: https://github.com/LostRuins/koboldcpp 项目地址: https://gitcode.com/gh_mirrors/ko/KoboldAI-Client 你是否曾因创意枯竭而对着空…...

Path of Building终极指南:免费离线角色构建工具完全解析

Path of Building终极指南:免费离线角色构建工具完全解析 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building是一款专为《流放之路》玩家设计的…...

大气层系统深度解析:解锁Switch游戏主机的无限潜能

大气层系统深度解析:解锁Switch游戏主机的无限潜能 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想象一下,你的Switch游戏主机不再是一个封闭的系统,而…...

3步解锁VMware macOS虚拟机:新手零基础安装指南

3步解锁VMware macOS虚拟机:新手零基础安装指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unlo/unlocker 想在Windows或Linux电脑上体验macOS系统吗?VMware macOS Unlocker让你轻松实现这个…...

网页文本快速替换终极指南:三分钟掌握chrome-extensions-searchReplace完整技巧

网页文本快速替换终极指南:三分钟掌握chrome-extensions-searchReplace完整技巧 【免费下载链接】chrome-extensions-searchReplace 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-searchReplace 你是否曾经面对满屏的文字需要批量修改&a…...

OTT平台FCC服务部署实战:1.3倍速快发与带宽占用的两难选择

OTT平台FCC服务部署实战:1.3倍速快发与带宽占用的两难选择 当用户按下遥控器切换频道时,背后正上演着一场精密的时间争夺战。对于OTT平台的技术团队而言,快速频道切换(FCC)不仅是用户体验的关键指标,更是对…...

为什么92%的AI工程师已在凌晨2点更新Docker AI Toolkit 2026?插件兼容清单、降级回滚方案与安全补丁全披露,

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026 最新版功能概览 Docker AI Toolkit 2026 是面向 AI 工程化部署的一站式容器化工具集,深度集成模型训练、量化推理、服务编排与可观测性能力。本版本首次将 LLM 微调…...

Revelation光影包终极指南:3步打造电影级Minecraft世界

Revelation光影包终极指南:3步打造电影级Minecraft世界 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation Revelation是一款专为Minecraft: Java Edition设计的探…...

Python超级学习器集成开发实战与优化技巧

## 1. 项目概述:Python中的超级学习器集成开发三年前接手一个金融风控项目时,我首次体会到集成学习的威力——当单个模型的AUC卡在0.82死活上不去时,一个简单的Stacking集成直接把指标提升到0.87。这种"三个臭皮匠顶个诸葛亮"的效果…...

达梦DM8数据库SQLLOG日志配置全攻略:从参数详解到性能监控实战

达梦DM8数据库SQLLOG日志深度配置与性能诊断实战 在数据库运维的世界里,日志就像飞机上的黑匣子,记录着每一次"飞行"的完整轨迹。达梦DM8的SQLLOG日志系统正是这样一个强大的诊断工具,但很多DBA仅仅停留在"开启日志"的基…...

基于Claude API的子代理框架:构建模块化AI智能体协作系统

1. 项目概述:一个面向Claude API的智能子代理框架最近在折腾AI应用开发,特别是围绕Claude API构建一些自动化工作流时,发现了一个挺有意思的开源项目——zhsama/claude-sub-agent。这本质上是一个专门为Claude设计的子代理(Sub-Ag…...

用Python和ESA工具箱处理CryoSat-2数据:从下载SIRAL波形到生成冰厚变化图的保姆级教程

用Python和ESA工具箱处理CryoSat-2数据:从下载SIRAL波形到生成冰厚变化图的保姆级教程 极地冰盖和海冰的厚度变化是气候研究的关键指标。对于地球科学领域的研究者来说,欧洲航天局(ESA)的CryoSat-2卫星提供了宝贵的数据源&#xf…...

CodeLayer:基于上下文工程与多智能体协作的复杂代码库AI编程实践

1. 项目概述:当AI编码助手遇上复杂代码库的硬骨头如果你和我一样,每天都在和动辄几十万行、架构复杂、依赖繁多的代码库打交道,那你肯定对“让AI帮忙写代码”这件事又爱又恨。爱的是,它确实能快速生成一些样板代码或简单函数&…...

Wren Engine:为AI智能体构建业务语义层的开源解决方案

1. 项目概述:为AI智能体构建的“业务大脑”如果你正在尝试让AI智能体(比如Claude Code、Cursor里的AI助手)去查询和分析公司的业务数据,大概率会遇到一个头疼的问题:AI能连上数据库,也能生成SQL&#xff0c…...

PyMICAPS:气象数据可视化终极指南,从数据到专业图表仅需三步

PyMICAPS:气象数据可视化终极指南,从数据到专业图表仅需三步 【免费下载链接】PyMICAPS 气象数据可视化,用matplotlib和basemap绘制micaps数据 项目地址: https://gitcode.com/gh_mirrors/py/PyMICAPS PyMICAPS是一款基于Python的开源…...

Excalidraw动画制作终极指南:3步让静态绘图动起来的完整教程

Excalidraw动画制作终极指南:3步让静态绘图动起来的完整教程 【免费下载链接】excalidraw-animate A tool to animate Excalidraw drawings 项目地址: https://gitcode.com/gh_mirrors/ex/excalidraw-animate 想要让Excalidraw绘图"活"起来吗&…...

不用公网IP,如何在内网高效搭建RustDesk远程控制服务器?基于Windows Server 2019的完整实践

纯内网环境下的RustDesk私有化部署指南:基于Windows Server 2019的零成本方案 当企业或机构需要在内网环境中实现安全高效的远程控制时,公有云方案往往面临成本高、延迟大等问题。RustDesk作为一款开源的远程桌面工具,其自建服务器功能为内网…...

别再瞎调了!手把手教你精确计算EtherCAT主站循环周期(附Linux/Xenomai实测数据)

深度解析EtherCAT主站循环周期:从理论到实践的精准调优指南 在工业自动化领域,EtherCAT凭借其卓越的实时性能已成为运动控制系统的首选协议。然而,许多工程师在实际部署中常遇到一个关键问题:如何精确计算和优化主站循环周期&…...

BlockTheSpot终极指南:5分钟彻底解决Spotify广告与强制更新问题

BlockTheSpot终极指南:5分钟彻底解决Spotify广告与强制更新问题 【免费下载链接】BlockTheSpot Video, audio & banner adblock/skip for Spotify 项目地址: https://gitcode.com/gh_mirrors/bl/BlockTheSpot 你是否厌倦了Spotify的频繁广告打断音乐体验…...