概述
Wireshark是一个开源的网络数据包分析器,可以实时的从网络接口捕获数据包并分析。他支持多种协议类型,是最为流行的数据包分析器。
Wireshark支持Mac和Windows版本,但是对于Linux服务器上的包,以往只能通过服务器上tcpdump后,去离线分析数据包,较为不便。
之前的文章讲过利用rpcapd实现远程抓包https://blogs.92ac.cn/2024/08/06/rpcapd/, 这种方式要求在服务器上额外编译安装rpcapd。
这里再介绍其他的几种方式。
环境条件:
- Linux IP 192.168.3.2 ,安装了tcpdump
- Windows IP 192.168.3.3,已经安装了wireshark,开启安装了wsl2(笔者是用的Ubuntu24.04)
假如Wireshark.exe 的路径是C:\Program Files\Wireshark\Wireshark.exe
, 将其转成wsl中的路径/mnt/c/Program Files/Wireshark/Wireshark.exe
1. ssh方式
ssh [email protected] tcpdump -U -s0 -w - | "/mnt/c/Program Files/Wireshark/Wireshark.exe" -k -i - |
执行后,会打开一个wireshark的窗口,可以看到抓取的包。
2. nc方式
用 nc 监听9999,接收转发来的包
nc -l -p 9999 | "/mnt/c/Program Files/Wireshark/Wireshark.exe" -k -i - |
执行后,会打开一个wireshark的窗口,但里面的还没有任何信息
然后去抓取的目标机器上,执行下列命令,将tcpdump的包通过nc转发到Wireshark上
sudo tcpdump -w - | nc 192.168.3.3 9999 |
执行后,如果没有报错,就可以看到抓取的包。