Wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安装相应的rpcapd服务例程就可以实现在本地电脑执行Wireshark 捕获远程电脑的网络通信数据了。
1. Linux系统安装运行rpcapd
首先下载源代码包:git clone https://github.com/rpcapd-linux/rpcapd-linux.git
在Ubuntu系统编译安装
sudo apt-get build-dep libpcap
cd rpcapd/libpcap
./configure && make
cd ../
make
在CentOS系统编译安装(需要将 Makefile 里的 -static 选项删除掉,否则编译会报错!)
yum install -y byacc glibc-static libgcrypt-devel
cd rpcapd/libpcap
./configure && make
cd ../
make
运行rpcpad
sudo ./rpcapd -4 -n -p <chosen_port>
2. Wireshark远程抓取通讯数据
注意:不能使用最新版本的Wireshark,会崩溃。经过测试v2.0.16版本可以正常使用。
https://www.wireshark.org/download/win64/all-versions/Wireshark-win64-2.0.16.exe
在Windows系统上运行Wireshark,打开捕获接口对话框
单击右下角的 管理接口... 按钮,打开管理接口对话框并选择 远程接口 页面
单击左下角的 + 按钮,填写主机和端口号(Linux系统上运行rpcapd时指定的端口号)
单击OK,Wireshark将会列出Linux系统上的网络接口
单击OK,返回捕获接口对话框,已经将Linux系统的网络接口添加进来了
单击开始,然后去Linux系统在捕获的网络接口上进行操作,Wireshark将会抓取到通讯数据
还是在Windows上操作舒服啊,啥时候Linux才能有这么好的体验呢?