我安装了 wireshark。运行它。当我点击“接口列表”时,我得到了一个 0 个接口的列表。我想这意味着我遇到了某种配置问题。
我猜我的内核没有配置好?我该如何解决这个问题?我希望有一个比手动重新编译内核更简单的解决方案。
答案1
您需要以 root 身份运行 wireshark。我不确定启动器是否已设置为执行此操作,但请尝试将其插入终端:
gksu wireshark
为了让生活更轻松,我建议您编辑启动器(右键单击菜单→单击编辑菜单→找到 wireshark 并在其命令前面加上gksu
)。
或者,您可以使用setcap
允许非 root 用户使用dumpcap
(WireShark 使用的执行所有捕获操作的应用程序):
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
这本质上来自 WireShark Wiki。我在发布上述内容之前就见过这个,但我对它不太有信心。在评论中再次看到它后,我今天进行了测试,它似乎有效。
但这也存在安全问题……
系统上的任何用户或进程现在都可以监控网络流量而无需用户干预。想想被利用的服务或真正的用户。维基确实有另一个设置,您可以dumpcap
在其中限制一组用户(并将您的帐户添加到该组),但这只是略有改善。如果您的浏览器存在可利用的漏洞,允许某人发出命令(偶尔会发生)会发生什么?
在我看来这是更多的比通过 有更大的安全风险gksu
。至少这样你需要输入密码。
答案2
以下方式将限制捕获数据包给特定用户和不要以 root 身份运行 wireshark。
首先,运行sudo dpkg-reconfigure wireshark-common
。询问时选择“是”。这将创建一个 wireshark 组,其成员可以捕获数据包。
其次,运行sudo usermod -a -G wireshark <yourloginname>
这会将您添加到 wireshark 组。
第三,注销然后重新登录。这将应用组更改。
现在您应该能够以您的用户身份运行 wireshark 并让它允许您捕获数据包。如果您想添加其他用户,只需为其他用户重复步骤 2 和 3。
通过阅读wireshark 维基,这种方法听起来是最推荐的方法。