:命令行抓包与离线包分析实战》)
前言在云计算生产环境中Linux 云主机通常没有图形界面我们无法使用 Wireshark 的图形界面。此时掌握命令行抓包工具如tshark/tcpdump和离线包分析技能是云计算架构师排查网络故障的必备生存技能。本文记录了我使用tsharkWireshark 自带的命令行工具玩法与 Linux 下的tcpdump一致的实操过程。一、 命令行环境准备与抓包由于tshark在 Windows PowerShell 下直接运行会报错安全策略限制需使用.\前缀。查看网卡编号.\tshark -D记住你上网的网卡编号如 WLAN 为5以太网为9。命令行抓包并保存.\tshark -i 5 -w test.pcap参数解读-i指定网卡-w写入文件。运行后按CtrlC停止抓包。二、 离线包分析实战拿到test.pcap文件后我们不用打开 Wireshark 图形界面直接在命令行进行分析。查看文件体检报告.\capinfos test.pcap可以快速得知包数量、文件大小、平均带宽等核心指标。读取文件并过滤.\tshark -r test.pcap -Y dns-r读取文件-Y使用显示过滤器语法与图形界面完全一致。这里会精准打印出 DNS 查询记录能清晰看到 CDN 的 CNAME 解析链条。抓取 TCP 握手包.\tshark -r test.pcap -Y tcp.port 443 -c 10过滤 443 端口-c 10表示只显示前 10 个匹配包。可以完美还原 TCP 三次握手过程SYN、SYNACK、ACK及 TLS 参数协商。三、 踩坑复盘避坑指南坑1PowerShell 无法运行 tshark。报错无法将“tshark”项识别为 cmdlet...。解决在命令前加上.\如.\tshark -D。坑2-c参数导致的过滤空屏。使用tshark -r test.pcap -Y dns -c 10时可能没有输出。解决读取文件时-c 10表示只读取文件的前 10 个包如果前 10 个包里没有 DNS就会直接退出。建议去掉-c直接过滤或者使用| head限制输出行数。四、 云架构师视角云端排障标准动作在云服务器上你无法装图形界面标准排障流程如下云端抓包在 Linux 云主机执行tcpdump -i eth0 -w /tmp/problem.pcap。拉回本地使用scp或 SFTP 将.pcap文件下载到本地。分析排障使用本地 Wireshark 图形界面看时间序列图、专家信息或tshark命令行进行深度分析。