wireshark介绍和使用

Wireshark 介绍

Wireshark 是一款开源的 网络协议分析工具(Packet Sniffer),用于捕获和分析网络数据包。它支持多种协议解析,适用于网络调试、安全分析、网络教学等场景。

官网:https://www.wireshark.org/

特点:

✔ 跨平台(Windows/macOS/Linux)

✔ 支持 2000+ 种协议解析

✔ 图形化界面 + 命令行工具(tshark)

✔ 可实时抓包或分析离线抓包文件(.pcap)

📌 Wireshark 基本使用

  1. 安装 Wireshark
    Windows:官网下载安装包,安装时勾选 WinPcap/Npcap(抓包驱动)。

Linux(Debian/Ubuntu):

bash

sudo apt install wireshark

sudo usermod -aG wireshark $USER # 让当前用户有权限抓包

macOS:通过 brew 安装:

bash

brew install wireshark

  1. 选择网卡 & 开始抓包

启动 Wireshark,选择要监听的网络接口(如 eth0、Wi-Fi)。

https://www.wireshark.org/docs/wsug_html/_images/wsug_graphics/capture_interfaces.png

点击 "Start" 开始抓包。

停止抓包:点击红色方块按钮。

  1. 过滤数据包
    Wireshark 支持强大的过滤语法,快速定位关键流量:

只显示 HTTP 流量:

text

http

过滤特定 IP:

text

ip.src == 192.168.1.1 || ip.dst == 192.168.1.1

过滤 TCP 端口(如 443):

text

tcp.port == 443

组合条件:

text

http and ip.src == 192.168.1.100

  1. 分析数据包

点击数据包:查看协议层级(如 Ethernet → IP → TCP → HTTP)。

Follow TCP Stream(右键数据包 → Follow → TCP Stream):查看完整会话(如 HTTP 请求/响应)。

统计工具:

Statistics → Protocol Hierarchy:流量协议分布。

Statistics → Conversations:查看通信对端(IP/端口)。

  1. 保存 & 导出数据
    保存抓包文件:
    File → Save As...(格式:.pcap 或 .pcapng)。

导出特定数据:

右键数据包 → Export Packet Bytes(可提取文件、图片等)。

🔧 高级功能

  1. 命令行抓包(tshark)

    bash

    tshark -i eth0 -f "tcp port 80" -w output.pcap # 抓取 HTTP 流量

    tshark -r input.pcap -Y "http" # 读取 pcap 文件并过滤

  2. 解密 HTTPS 流量

    需配置浏览器或服务器导出的 SSL/TLS 密钥:

    Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename

  3. 自定义协议解析

    使用 Lua 脚本扩展协议解析:

    Tools → Lua Console

示例脚本目录:/usr/share/wireshark/plugins/

⚠️ 注意事项

合法使用:未经授权抓取他人网络流量可能违法!

性能影响:高速网络下抓包可能导致丢包,可调整缓冲大小。

隐私保护:避免捕获敏感信息(如密码),抓包后及时清理。

📚 学习资源

官方文档:Wireshark User's Guide

书籍推荐:

《Wireshark网络分析实战》

《Wireshark抓包艺术》

💡 总结

基础流程:选择网卡 → 抓包 → 过滤 → 分析。

高级技巧:命令行抓包、HTTPS 解密、自定义协议。

适用场景:网络故障排查、安全分析、协议学习。

相关推荐
香蕉割草机40 分钟前
高性能网络DPDK、RDMA、XDP初探
网络
程序员编程指南2 小时前
Qt 网络编程进阶:网络安全与加密
c语言·网络·c++·qt·web安全
未来之窗软件服务2 小时前
基于 Nginx 与未来之窗防火墙构建下一代自建动态网络防护体系—仙盟创梦IDE
网络·ide·nginx·服务器安全·仙盟创梦ide·东方仙盟
GOATLong3 小时前
传输层协议TCP
c语言·开发语言·网络·c++·网络协议·tcp/ip
wanhengidc3 小时前
服务器被网络攻击后该如何进行处理?
运维·服务器·网络
学Linux的语莫4 小时前
k8s的nodeport和ingress
网络·rpc·kubernetes
网络~小白4 小时前
MSTP技术
网络
嶔某5 小时前
网络:应用层
linux·服务器·网络·c++
惜.己11 小时前
pytest中使用skip跳过某个函数
开发语言·python·测试工具·pytest