如何通过Ubuntu的dumpcap工具实现高效且精细的网络数据包捕获?
- 内容介绍
- 文章标签
- 相关推荐
再看痛点一,权限不足导致 dumpcap 无法启动
在 Ubuntu 上直接运行 dumpcap 时常见错误:“Couldn't run /usr/bin/dumpcap in child process: 权限不够”。这是因为普通使用者缺少访问网卡的特权。老实说,解决办法是为 dumpcap 添加必要的 CAP_NET_RAW 和 CAP_NET_ADMIN 能力。或将其所属组设置为 wireshark 并赋予 setcap。
# 安装 dumpcap
sudo apt update
sudo apt install dumpcap
# 创建 wireshark 组并把当前使用者加入
sudo groupadd wireshark
sudo usermod -aG wireshark $USER
newgrp wireshark # 使组 membership 立即生效
# 赋予 dumpcap 必要的能力
sudo setcap cap_net_raw。cap_net_admin+eip /usr/bin/dumpcap
# 验证
dumpcap --version # 应该不再提示权限错误
痛点二的观点是,捕获过程中出现丢包、缓冲区溢出
默认缓冲区较小,在突发流量时易导致数据包被丢弃。通过增大捕获缓冲区还有启用非阻塞模式可以显著降低丢包率。不过,
-B # 捕获缓冲区大小。 再看痛点一,权限不足导致 dumpcap 无法启动
在 Ubuntu 上直接运行 dumpcap 时常见错误:“Couldn't run /usr/bin/dumpcap in child process: 权限不够”。这是因为普通使用者缺少访问网卡的特权。老实说,解决办法是为 dumpcap 添加必要的 CAP_NET_RAW 和 CAP_NET_ADMIN 能力。或将其所属组设置为 wireshark 并赋予 setcap。
# 安装 dumpcap
sudo apt update
sudo apt install dumpcap
# 创建 wireshark 组并把当前使用者加入
sudo groupadd wireshark
sudo usermod -aG wireshark $USER
newgrp wireshark # 使组 membership 立即生效
# 赋予 dumpcap 必要的能力
sudo setcap cap_net_raw。cap_net_admin+eip /usr/bin/dumpcap
# 验证
dumpcap --version # 应该不再提示权限错误
痛点二的观点是,捕获过程中出现丢包、缓冲区溢出
默认缓冲区较小,在突发流量时易导致数据包被丢弃。通过增大捕获缓冲区还有启用非阻塞模式可以显著降低丢包率。不过,
-B # 捕获缓冲区大小。 
