认识
Wireshark 是一款开源的网络协议分析工具,广泛用于网络故障排查、协议开发和教育等领域。它能够捕获并详细分析网络流量,帮助用户深入了解网络通信的细节。
官网:https://www.wireshark.org/
文档:https://www.wireshark.org/docs/wsug_html_chunked/
仓库:https://gitlab.com/wireshark/wireshark
组成
WIP
性质
- 实时捕获:支持从多种网络接口实时捕获数据包。
- 深度分析:提供对数百种协议的解码和分析,包括常见的 TCP/IP、HTTP、DNS 等。
- 过滤功能:强大的显示和捕获过滤器,便于用户快速定位特定流量。
- 图形化界面:直观的界面展示捕获的数据包,支持多种视图和统计信息。
- 跨平台支持:兼容 Windows、macOS、Linux 等多种操作系统。
编写表达式
6.4. Building Display Filter Expressions
not ospf 排除
构建
安装 Wireshark 工具
How to set up wireshark to run without root on Debian? – Super User
在 Ubuntu 21.04 中,按照如下方法安装:
# apt-get install -y wireshark
# dpkg-reconfigure wireshark-common
...
Should non-superusers be able to capture packets?
<Yes>
...
# adduser <your username> wireshark
# reboot // 或者,退出重新登录当前帐号
Flatpak
No capture support · Issue #4 · flathub/org.wireshark.Wireshark
Couldn’t run /usr/bin/dumpcap in child process: Permission denied
How to fix Wireshark "Couldn’t run /usr/bin/dumpcap in child process: Permission denied
networking – How to enable Wireshark without running as root in Trusty 14.04
1)配置 wireshark 以允许非 ROOT 用户抓包:sudo dpkg-reconfigure wireshark-common
2)将用户添加到 wireshark 组:sudo usermod -a -G wireshark $USER
应用
- 网络故障排查:识别和解决网络连接问题。
- 安全分析:检测和分析潜在的网络攻击或异常行为。
- 协议开发:调试和验证新协议或应用程序的网络通信。
- 教育学习:用于网络协议和通信的教学与学习。
通过 tcpdump 抓包,然后通过 Wireshark 分析
https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/
我们能够使用 tcpdump 保存数据包信息,将数据包信息导入 wireshark 中分析:
1)不仅以更规整的格式,展示各个网络包的头部信息;
2)还用不同颜色展示 DNS 和 ICMP 这两种不同的协议;
3)选择某一个网络包后,在其下方的网络包详情中,可以看到这个包在协议栈各层的详细信息
我们将要访问的是 http://example.com/ 站点,并分析流量:
# tcpdump -i any -nn host example.com -w web.pcap # curl http://example.com // 按下 Ctrl+C 停止 tcpdump 命令 # wireshark
远程主机抓包
How can I sniff the traffic of remote machine with wireshark? – Server Fault
[OpenWrt Wiki] How to capture, filter and inspect packets using tcpdump or wireshark tools
ssh root@<SERVER> tcpdump -U -s0 -i <INTERFACE> -w - "<EXPRESSION>" | wireshark -k -i - # tcpdump # -U:配合 -w 选项,将数据包立即写入文件,而不是当缓冲写满后再写入文件; # -s0:使被捕获的数据包完全发送到标准输出,而非截断,以使 Wireshark 获取完整的数据包; # wireshark # -k:使用 -i 指定的接口立即开始捕获
协议无法被展示
Wireshark Q&A/Monitoring FTP on a different port number
问题描述:在 TCP 的 FTP 中,协议内容无法被展示,而是直接以 Data: xxx 形式显示。
原因分析:我们的 FTP 服务未使用默认的 21 端口,并且上层 TCP 也不包含内部协议类型,所以 Wireshark 无法识别。
解决方案:
1)右键 ⇒ Decode As…
2)Value 设置为特殊的端口号;Current 设置为协议类型;
3)OK,然后便能显示协议数据内容;
增加显示信息(增加列)
Malware-Traffic-Analysis.net – Changing the column display in Wireshark
Edit ⇒ Preferences ⇒ User Interface ⇒ Columns
调整时间
Wireshark/Doc/7.6. Time Stamps
View ⇒ Time Display Format ⇒ XXXXXXX
清空已捕获数据包
https://stackoverflow.com/questions/19366795/how-do-i-clear-the-capture-window-in-wireshark
Clicking on the green shark-fin to the right of the red Stop button
Clicking on Capture > Restart
Hitting Ctrl-R.
我们暂未找到相关方法,现(03/20/2025)除了 Restart 别无它法。
常用协议的过滤信息
DHCP ⇒ bootp
CAPWAP ⇒ capwap
参考
Wireshark – Wikipedia
DeepSeek / 介绍 Wireshark