科技知识港
第二套高阶模板 · 更大气的阅读体验

网络协议分析常见方法 日常维护方法与实用案例

发布时间:2025-12-15 02:38:14 阅读:309 次

抓包是第一步

平时家里Wi-Fi突然上不了网页,或者公司系统重装后网络不通,很多人第一反应是重启路由器。其实更靠谱的做法是先看看数据到底卡在哪一步。这时候就得用到抓包工具,比如Wireshark,它能把经过网卡的所有数据包一个个记录下来。

打开Wireshark,选中当前使用的网络接口,点开始捕获,刷个网页就能看到一堆五颜六色的数据包。TCP、UDP、HTTP、DNS各种协议混在一起,看起来像天书。但只要盯住目标IP和端口,过滤一下,比如输入ip.addr == 192.168.1.100,就能缩小范围。

过滤表达式要会写

原始数据太多,必须靠过滤表达式筛出有用信息。常见的像tcp.port == 80只看HTTP流量,dns单独查看域名解析请求。组合条件也常用,比如ip.src == 192.168.1.100 && tcp.dstport == 443,表示只看从某台电脑发往HTTPS服务的数据。

有时候系统重装完,发现无法访问外网,但本地能通。抓包一看全是ARP请求,没有真正的DNS回应,那问题很可能出在网关或DNS设置上,而不是系统本身。

看三次握手有没有完成

TCP连接建立靠三次握手。如果浏览器一直转圈,抓包发现只有SYN发出,没收到SYN-ACK,说明目标服务器没响应,或者是防火墙拦了。这种情况在重装系统后特别常见,尤其是忘记关Windows防火墙,或者安全组策略没配好。

在Wireshark里找一条TCP流,右键“Follow > TCP Stream”,就能看到完整的会话内容。如果客户端发了GET请求,但服务器没回文,那问题就在服务端;反过来,要是连第一个SYN都没发出去,那可能是本地路由表或网卡驱动有问题。

利用命令行工具辅助分析

不是每次都能上图形界面抓包。Linux或重装后的Windows命令行下,tcpdump更实用。比如执行:

tcpdump -i eth0 host 192.168.1.100 and port 53 -w dns_capture.pcap

这行命令会把指定主机的DNS流量保存到文件,之后可以拖进Wireshark详细分析。参数-w是写入文件,hostport用来限定范围,避免日志爆炸。

关注应用层协议行为

HTTP状态码能快速定位问题。抓包时看到返回404,那是资源不存在;500说明服务器内部出错;301跳转多可能影响加载速度。重装系统后如果某个内部系统打不开,抓包发现返回401,八成是认证配置丢了,得重新设权限。

DNS查询失败也会导致网页打不开。在数据包里搜dns.flags.response == 1,看是否有应答。如果没有,可能是DNS服务器地址填错,或是网络中间设备拦截了53端口。

对比正常与异常流量

最有效的分析方式之一,就是拿一台正常的机器做对照。比如两台电脑系统版本一样,一个能上网,一个不能。分别抓包,对比它们发的DHCP请求、DNS查询、TCP握手流程。差异点往往就是故障根源。

曾经遇到过一次,系统重装后网卡工作在半双工模式,导致丢包严重。抓包发现大量TCP重传和Dup ACK,而正常机器完全没有。换条网线,问题解决。这种底层问题,光看系统状态根本发现不了。