1. 解决Wireshark的权限不足问题
当普通用户身份运行Wireshark时,会遇到权限不足的问题。原因在于dumpcap
需要root
权限才能正常工作。以下是解决此问题的步骤:
-
创建用户组
我们将创建一个名为
wireshark
的用户组:sudo groupadd wireshark
-
更改dumpcap的用户组
sudo chgrp wireshark /usr/bin/dumpcap
-
为wireshark组授予执行dumpcap的权限
sudo chmod 4755 /usr/bin/dumpcap
注意:如果使用权限
4754
,Wireshark可能仍会提示没有足够的权限。 -
将当前用户添加到wireshark组
sudo gpasswd -a $USER wireshark
2. 无图形化界面抓包
如果您想在没有图形界面的设备b上抓包,并在设备a上的Wireshark中进行分析,可以使用tcpdump
与SSH结合的方法。
-
安装
tcpdump
在设备b上确保已经安装了
tcpdump
:- sudo apt-get install tcpdump
-
使用tcpdump抓包并通过SSH传输到设备a
使用以下命令将设备b上的数据包捕获并传输到设备a上:
ssh username@192.168.0.10 “sudo tcpdump -i any -U -w -” | wireshark -k -i -
解释:
-i any
: 从所有网络接口捕获数据。-U
: 数据包被捕获后立即写入。-w -
: 将数据包写入标准输出。| wireshark -k -i -
: 通过管道将数据从tcpdump
传输到Wireshark。
-
启动Wireshark
执行上述命令后,设备a上的Wireshark应自动启动,并开始显示设备b的网络数据包。
这样,就可以在设备a上实时查看设备b上捕获的数据包了。确保在执行上述操作时有适当的权限。