我的目标是在 Amazon Linux AMI 中使用 tshark 捕获数据包。打字时沙克在命令行中有一个错误: “tshark:没有可以进行捕获的接口”
如何实施该解决方案Wireshark为非root用户设置Linux
$ sudo apt-get install wireshark
$ sudo dpkg-reconfigure wireshark-common
$ sudo usermod -a -G wireshark $USER
$ gnome-session-quit --logout --no-prompt
在 Amazon Linux AMI 中(不是 Ubuntu)?
答案1
使用须藤
我认为你需要找出你的网络正在使用什么接口,然后告诉tshark
它。
例子
我的盒子上有网络设备。
$ ip addr|grep '^[0-9]'|awk '{print $2}'
lo:
eth0:
wlan0:
跑步tshark
:
$ sudo tshark -i wlan0 | head -5
..start seeing output from tshark...
使用能力
Amazon AMI 实例基于 CentOS,因此您可以使用以下步骤来完成您想要的任务。
$ sudo groupadd wireshark
$ sudo usermod -a -G wireshark saml
$ setcap cap_net_raw,cap_net_admin=eip /usr/sbin/dumpcap
上面创建了 Unix 组wireshark
,向其中添加用户saml
,然后使用该工具添加功能setcap
以允许其他人访问该dumpcap
文件。
例子
$ tshark -i wlan0
Capturing on wlan0
0.000000 108.160.163.38 -> 192.168.1.20 HTTP HTTP/1.1 200 OK (text/plain)
0.087199 108.160.163.38 -> 192.168.1.20 TCP http > 38987 [ACK] Seq=180 Ack=352 Win=83 Len=0 TSV=144745749 TSER=195830096
0.253077 192.168.1.20 -> 255.255.255.255 DB-LSP-DISC Dropbox LAN sync Discovery Protocol
0.253360 192.168.1.20 -> 192.168.1.255 DB-LSP-DISC Dropbox LAN sync Discovery Protocol
0.779785 192.168.1.20 -> 74.125.225.115 HTTP HEAD / HTTP/1.1
...
capabilities
您可以通过手册页阅读有关 Linux 功能的更多信息man capabilities
。