尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

网络协议入门:用Wireshark抓包看懂HTTP、DNS与TCP/IP

发布时间:2026/9/26 16:44:12

资讯中心
01
ARTICLE

网络协议入门:用Wireshark抓包看懂HTTP、DNS与TCP/IP

网络协议入门:用Wireshark抓包看懂HTTP、DNS与TCP/IP
这次我们来看网络协议。别被“协议”两个字吓到它本质就是设备之间“约好怎么说话”的规则网页能打开邮件能收发打印机能在局域网里被发现背后全是协议在起作用。很多新手觉得网络协议难是因为一上来就背 TCP 三次握手、OSI 七层模型背了半天还是不知道它和“网络打印失败”“网页打不开”有什么关系。这篇教程用 40 分钟的节奏安排前 20 分钟建立分层模型和常见协议的概念后 20 分钟用 Wireshark 抓包把你刚才听到的协议一个一个“看到”。整体不涉及高深数学也不要求你先精通 Linux只要会打开命令行、能安装一个抓包工具就行。学完之后你能独立完成 HTTP、DNS、DHCP、TCP/IP 的基础抓包分析也能在遇到打印协议问题时知道该查哪个端口、抓哪块网卡。1. 网络协议学习核心能力速览能力项说明学习对象HTTP/HTTPS、TCP/UDP、IP/ICMP、DNS、DHCP、ARP、SMB、IPP、LPD 等常见协议前置知识会操作电脑、能打开命令行即可无需编程基础核心工具Wireshark / tshark / tcpdump / curl / dig / nslookup硬件门槛普通电脑即可Windows 10/11、Linux、macOS 均可环境要求建议准备管理员权限抓包需要一块能联网的网卡学习方式概念理解 抓包验证 问题排查可扩展能力用 tshark 命令行接口批量分析 pcap 文件接入日常巡检脚本适合场景运维排查、技术支持、开发调试、网络入门自学从材料来看这套学习路径不挑显卡、不挑服务器配置最关键的只有一件事你愿意在自己有权测试的设备上做抓包实验。整个教程的终点不是“背下协议列表”而是“看到协议怎么工作”并在真实故障里知道从哪里下手。2. 适用场景与学习边界网络协议学习最直接的价值是解决“知其然不知其所以然”的问题。运维人员经常遇到网站时不时打不开、打印机连不上、视频会议卡顿重启路由器就好但下次还犯。如果你能看懂 DNS 解析时间、TCP 重传率、DHCP 地址分配过程就能把问题从“玄学”变成“可量化的日志”。适合学这套内容的人主要有三类刚入门的技术支持或运维新手需要一个能落地的网络知识体系。做前端、后端、物联网开发的程序员想搞明白请求为什么慢、设备为什么离线。准备参加网络相关认证但希望先通过抓图直观理解协议的在校学生。不适合的场景也要说清楚如果你只想应付考证选择题直接刷题更高效如果你要做企业级网络性能调优还需要补充 BGP、VLAN、防火墙策略等进阶内容本文只打基础。最重要的边界是安全与合规。抓包可以看到网卡上的流量但网络流量可能包含他人隐私。所有抓包实验必须在你自己的设备、自己管理的网络或者明确获得授权的测试环境里进行。不要用抓包工具去接收、解析、转发不属于你的通信数据。涉及 HTTPS、TLS 解密时更要注意密钥管理和授权范围。打印协议中提到的 SMB、IPP 等端口在公网环境通常是高危风险点生产环境应通过防火墙限制访问。3. 环境准备一台电脑、一套抓包工具、一张实验拓扑学习网络协议不需要昂贵的网络设备。一台普通电脑就够了最好支持管理员权限运行工具。抓包时如果只有一台设备可以抓本机回环接口loopback观察本机程序之间的通信有两台设备时可以连到同一个家用路由器抓真实局域网流量。3.1 安装 Wireshark 与命令行工具Wireshark 是学习协议的首选工具因为它有图形界面能直接看到数据包的协议树。Windows 下可以看到安装包后一直 Next 即可Linux 下用系统包管理器安装。# Ubuntu / Debian 系列安装 Wireshark、tshark 和抓包工具 sudo apt update sudo apt install -y wireshark tshark tcpdump curl dnsutils如果安装过程中提示是否允许非超级用户抓包按需选择。学习阶段直接用 root 或管理员权限运行更省事生产环境则必须最小权限。Windows 下如果不想装额外包只需安装 Wireshark 安装包并确保 curl、ping、nslookup 可用Windows 10 以上自带 curl 和 pingnslookup 默认可用。3.2 确认本机 IP、网关与 DNS打开命令行执行下面的命令把自己机器的网络信息记录下来。这是后面判断抓包结果的基础。# Linux / macOS 查看 IP 地址和网关 ip addr ip route # Windows 查看 IP 配置 ipconfig /all记录四项信息本机 IP、子网掩码、默认网关、DNS 服务器。后面抓 DHCP 和 DNS 流量时你会看到这些地址频繁出现。3.3 搭建最简单的实验拓扑单机实验即可关键是知道流量路径。例如在浏览器输入http://example.com数据会经过浏览器构造 HTTP 请求 - DNS 解析域名 - TCP 建立连接 - HTTP 发送请求 - 服务器返回响应。这一条链路涉及 DNS、TCP、IP、HTTP 四类协议足够完成入门实验。如果要在多台设备之间抓包建议用一台旧电脑或虚拟机充当“客户端”一台普通电脑运行 Wireshark。两台设备接入同一个局域网。抓包网卡要支持混杂模式Wireshark 默认会在需要时打开混杂模式前提是网卡驱动支持。4. 30 分钟学完核心概念分层模型与协议工作方式基础知识不用啃七层模型全文先把“四层模型”理解到位应用层、传输层、网络层、链路层。应用层和用户直接打交道比如 HTTP、DNS、DHCP、SMTP。传输层负责端口和数据可靠传输主要是 TCP 和 UDP。网络层负责地址寻址和路由主要是 IP 和 ICMP。链路层负责同一局域网内物理传输涉及 MAC 地址和 ARP。数据发送时从上往下逐层封装应用层数据加上 TCP 端口信息变成 TCP 段再加上 IP 地址变成 IP 包再加上 MAC 地址变成帧最后通过网卡发出去。接收时反过来逐层拆解。理解“封装/解封装”是后面看 Wireshark 的关键一个 HTTP 请求在抓包里会被拆成“链路层头部、IP 头部、TCP 头部、HTTP 数据”Wireshark 的协议树就是按这个顺序展示的。4.1 用 curl 观察 HTTP 协议交互先用一个最简单的命令把应用层协议变成可见的文字# 查看 HTTP 响应头-I 表示只取响应头 curl -I http://example.com执行后会看到HTTP/1.1 200 OK状态行以及Content-Type、Content-Length、Server等响应头。这告诉你 HTTP 协议本质是“请求-响应”文本协议。如果访问 HTTPS 站点命令需要换成https://并且可以加-v参数观察 TLS 握手过程curl -v https://example.comcurl 的-v输出会显示TCP_NODELAY、Connected to、SSL connection using TLS等过程。这就是应用层协议最直观的体现。4.2 用 nslookup 观察 DNS 查询DNS 负责把域名变成 IP。在命令行执行# 查询 example.com 的 A 记录 nslookup example.com返回结果里的Server是本地递归 DNS 服务器地址Address是服务器 IP下面Name和Address是域名解析结果。通过这个实验你会看到“访问网站前先查 DNS”的真实过程。4.3 用 ping 观察 ICMP 协议ping命令默认发送 ICMP Echo Request目标主机返回 Echo Reply。ICMP 属于网络层协议常被用来检测连通性。执行ping -c 4 127.0.0.1这里用的是回环地址不需要网络权限。如果 ping 不通外网 IP而 ping 网关通说明问题可能出在路由或运营商链路这是最基础的“分段排查”思路。5. 常用网络协议逐个拆解端口、用途、排查思路下面按“端口 - 用途 - 常见问题”的框架把最常见的几个协议过一遍。不要死记硬背抓包实验时对照着看。5.1 TCP 与 UDPTCP传输控制协议是面向连接的可靠协议端口号识别应用典型端口有 80HTTP、443HTTPS、22SSH。TCP 最关键的过程是三次握手客户端发送 SYN服务器回复 SYNACK客户端再回复 ACK。Wireshark 过滤表达式是tcp.flags.syn 1可以看到握手包。排查“连接超时”时先看握手有没有完成如果只看到 SYN 没有 SYNACK可能是防火墙丢弃或服务未监听。UDP用户数据报协议是无连接协议不可靠但开销小典型端口有 53DNS、67/68DHCP、123NTP。UDP 适合实时音视频、广播发现。排查 UDP 问题时Wireshark 里看不到握手过程只能通过应用层响应判断。5.2 IP 与 ICMPIP 是网络层核心协议负责数据包寻址和转发。查看 IP 地址的命令是ip addrLinux或ipconfigWindows。IP 层常见问题包括 IP 地址冲突、子网掩码错误、路由不可达。ICMP 是 IP 的辅助协议ping 和 traceroute 都依赖它。5.3 HTTP 与 HTTPSHTTP 是明文文本协议请求行由方法、URL、版本组成响应行由版本、状态码、原因短语组成。常见状态码200 成功、301/302 重定向、404 资源不存在、500 服务器错误。HTTPS 在 HTTP 和 TCP 之间增加了 TLS 加密层端口是 443Wireshark 里不导入密钥的话看到的是加密后的数据。排查网站问题时用 curl 检查状态码比浏览器更直接# 检查页面状态码 curl -s -o /dev/null -w %{http_code}\n https://example.com5.4 DNSDNS 是应用层协议默认使用 UDP 53也支持 TCP 53处理大响应。常见故障是域名解析失败、解析到旧 IP、DNS 服务器不可达。排查命令是nslookup或dig。抓包时过滤dns可以看到查询请求和响应。如果响应时间过长可以进一步用dig的time参数观察每个查询耗时。5.5 DHCPDHCP 用于自动分配 IP 地址客户端和服务器之间通过 UDP 67/68 通信。交互过程是 Discover - Offer - Request - ACK简称 DORA。当电脑“无法获取到有效 IP 地址”时抓包过滤dhcp重点看 Server 是否回复 Offer。如果只看到 Discover 而看不到 Offer可能是 DHCP 服务未启动、地址池耗尽或者交换机开启了 DHCP Snooping。5.6 ARPARP 用于在局域网内把 IP 地址解析成 MAC 地址。抓包过滤arp可以看到广播查询和单播应答。常见问题包括 IP 地址冲突和 ARP 欺骗。当“同一个局域网内某台电脑无法访问网关”时看 ARP 缓存是否正确# Linux 查看 ARP 表 ip neigh # Windows 查看 ARP 表 arp -a如果网关 MAC 和真实设备不一致需要检查是否被恶意工具干扰。这个问题提醒我们协议本身没有安全问题但使用环境必须可控。6. 实操用 Wireshark 验证协议交互进入 20 分钟实操环节。核心目标抓一个真实的 HTTP 请求从抓包里找出 DNS、TCP、HTTP 三层交互过程。6.1 启动抓包打开 Wireshark选择当前上网的网卡双击开始抓包。如果使用笔记本电脑且同时有 Wi-Fi 和有线网卡要选实际接入网络的那个。建议先把过滤器设为http || dns避免无关流量刷屏。6.2 产生并过滤流量在浏览器访问一个 HTTP 站点。注意现在很多网站默认 HTTPS而 HTTPS 数据在 Wireshark 里是密文新手看起来不直观。可以先访问http://example.com该站点支持 HTTP或者访问局域网内路由器管理页面的 HTTP 地址。抓包停止后在过滤器栏输入tcp.port 80 || dns这样可以同时看到 DNS 和 HTTP 相关包。接着输入tcp.flags.syn 1观察三次握手。找到某个 TCP 流点击右键 - “Follow TCP Stream”能看到完整的 HTTP 请求和响应文本。6.3 使用 tcpdump 抓包服务器环境没有图形界面时用 tcpdump 更方便。先查看网卡名再按端口抓包# 查看网卡列表 tcpdump -D # 抓取 eth0 网卡上的 80 端口流量保存到文件 sudo tcpdump -i eth0 -w http.pcap port 80抓包文件可以复制到本地用 Wireshark 打开。抓包命令里必须写明网卡名和保存路径否则可能抓错接口。停止抓包用 CtrlC。6.4 判断抓包结果是否正常如果看到 DNS 查询响应说明域名解析流程正常。如果看到 TCP 三次握手SYN、SYNACK、ACK说明传输层连接建立正常。如果看到 HTTP 请求和响应说明应用层交互正常。如果只看到客户端发起的 SYN没有 SYNACK说明服务端未响应或中间设备丢弃了流量。如果抓不到任何包先检查网卡是否选择正确、是否有防火墙拦截抓包工具、是否拥有管理员权限。7. 网络打印协议专题SMB、IPP、LPD 与 Windows 7 注意事项“Windows 7 网络打印协议”这个关键词在检索里出现频率很高说明很多打印机故障的排查最终都会落到协议层。下面把常见打印协议梳理清楚。7.1 常见打印协议与端口协议端口用途SMB445/TCP、139/TCP常用于 Windows 共享打印机和文件共享IPP631/TCP互联网打印协议现代打印机支持可传打印任务和状态LPD515/TCP传统行式打印机守护协议Unix/Linux 网络打印常用91009100/TCP许多网络打印机直接监听的原始打印端口排查网络打印问题时先确认打印机型号支持哪个协议。现代打印机一般支持 IPP 和 9100老设备可能只支持 LPD。Windows 添加打印机时如果系统提示“无法连接到打印机”可以在抓包中过滤对应端口看是否有 TCP 握手成功、打印数据是否发送。7.2 Windows 7 环境的安全提醒Windows 7 已经停止官方支持继续使用会面临安全风险。SMB、LPD、IPPN 等打印相关端口如果暴露到公网很容易被扫描和攻击。在生产环境中建议把打印机放在独立网段通过防火墙限制仅允许办公网段访问打印端口。如果单位确实还在用 Windows 7 测试环境建议从三个角度排查打印问题一看打印服务是否启动二看设备是否能获取到正确 IP三看抓包中 445 或 9100 端口是否有响应。不要在测试环境之外复用这套配置方案更不要直接关闭系统防火墙来“解决”打印问题。7.3 通用排查流程确认打印机 IP 可达ping 打印机IP。确认打印端口放开使用telnet 打印机IP 9100测试端口连通性或使用nc命令。在电脑端抓包过滤ip.addr 打印机IP观察是否有 TCP 连接和打印数据。检查打印队列是否卡住重启打印服务Windows 下以管理员运行net stop spooler net start spooler。8. 协议分析脚本化命令行接口与批量处理图形界面适合入门处理大量抓包文件时效率不够。Wireshark 自带的 tshark 是命令行接口可以批量读取 pcap 文件提取关键信息。这对于巡检多个客户端、每天产生多个抓包文件的场景特别实用。8.1 tshark 基本用法# 输出 pcap 文件中的所有 HTTP 请求头 tshark -r http.pcap -Y http.request -T fields -e http.host -e http.request.uri # 统计 TCP 会话数量 tshark -r http.pcap -z conv,tcp -q-r指定输入文件-Y是显示过滤器-T fields指定输出格式-e指定要输出的字段。字段名在 Wireshark 的协议树中可以看到例如 HTTP 的http.host、DNS 的dns.qry.name。8.2 批量分析多个抓包文件把多个 pcap 文件放在一个目录里用 Python 调用 tshark批量提取每个文件中的 DNS 查询域名import subprocess import os pcap_dir pcap_files for filename in os.listdir(pcap_dir): if not filename.endswith(.pcap): continue pcap_path os.path.join(pcap_dir, filename) cmd [ tshark, -r, pcap_path, -Y, dns.flags.response 0, -T, fields, -e, dns.qry.name ] result subprocess.run(cmd, capture_outputTrue, textTrue) print(f {filename} ) print(result.stdout[:500])这个脚本只是模板实际使用时要替换抓包目录路径、过滤条件和输出字段。批量任务要加错误处理比如某些文件不是 pcap 格式、tshark 未安装、权限不足等。生产脚本还需要记录失败日志不能一个文件报错就中断整个任务。9. 资源占用、常见问题与最佳实践9.1 抓包资源占用怎么观察抓包本身不消耗太多 CPU但会持续写磁盘。长时间抓包可能生成几个 GB 的 pcap 文件导致磁盘写满进而拖慢系统。建议在抓包前设置 Wireshark 的“多文件模式”按文件大小或时间自动切割例如每 100MB 保存一个新文件保留最近 20 个文件。命令行工具也可以使用多文件参数。观察资源占用时不用太关注瞬时内存重点看平均写入速度和文件增长速度。抓包时如果出现大量“丢包”统计通常不是内容消耗问题而是过滤器太少或磁盘写入跟不上。适当收缩抓包范围只抓需要的端口、只抓需要的网卡能显著降低负载。9.2 常见问题与排查方法问题现象可能原因排查方式解决方案Wireshark 启动后看不到网卡权限不足或驱动未加载以管理员身份重新运行使用 root/admin 权限或安装 WinPcap/Npcap抓包时只有广播包没有应用流量选错了网卡检查网卡 IP 与上网网卡是否一致切换抓包网卡并启动浏览器访问网站抓不到 HTTP 明文包网站使用了 HTTPS过滤tls观察握手或访问 HTTP 站点抓包过滤器改为tcp.port 443tcpdump 提示权限不足当前用户无权抓包检查用户组和 sudo 权限使用sudo tcpdump或加入 wireshark 组tshark 批量脚本报格式错误pcap 文件损坏或版本不兼容用 Wireshark 打开测试单个文件换成新版 tshark或重新抓包打印端口 445 长时间没有响应防火墙拦截、打印服务未启动检查打印服务状态和防火墙规则临时放行测试端口确认后收紧规则抓包数据量太大界面卡顿过滤器没限制停止抓包后用显示过滤器缩放范围增加 tcp.port 80ARP 出现大量重复请求可能存在 IP 地址冲突或网络环路检查arp -a和交换机日志排查 IP 分配和交换机配置9.3 最佳实践与学习建议每次实验前先明确“我要验证哪个协议”然后只抓这一条链路上的流量。保存抓包文件时在文件名里写上日期、实验内容和过滤意图例如20250101_http_handshake.pcap。不要把所有抓包文件堆在一个目录里建议按时间或协议分目录。批量任务一定要加日志。脚本里每个文件处理完成后输出状态失败时记录 pcap_path 和错误原因方便二次处理。自动化脚本完成前先拿 2-3 个文件做最小验证确认字段输出正确后再扩大范围。关于合规抓包文件可能包含访客列表、账号 Cookie、打印文档内容等隐私信息。测试产生的 pcap 文件不要传到不受控的地方不使用时及时删除。涉及打印协议中的 SMB 和 IPP 端口不要在公网开启做端口连通性测试后记得把临时放行的防火墙规则撤回。9.4 下一步怎么继续学把基础抓包跑顺之后再深入三个方向第一TCP 重传与延迟分析用tcp.analysis.retransmission过滤重传包理解超时重传机制第二TLS 握手过程详解看 ClientHello、ServerHello、证书交换和加密协商第三结合企业场景抓 DHCP 和打印协议整理一套适合自己工作的排障流程。网络协议的学习没有终点但最重要的不是记住每个字段而是理解“数据从应用层封装到链路层再被对方逐层解封装”这一条主线。抓住这条主线后面学 HTTP/3、QUIC、TLS 1.3 都会快很多。建议把这篇教程里的命令和过滤表达式保存成一份自己的速查笔记遇到网络问题时先抓包再翻笔记几次之后就能形成自己的排错套路。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。