tcpdump 错误:在 Linux 中未找到合适的设备

tcpdump 错误:在 Linux 中未找到合适的设备

伙计们,我正在尝试测试 google.com 的 tcpdump(顺便说一下,我是 Linux 新手)。

以下是我在 shell 中输入的内容:

$tcpdump src 192.168.1.xxx and dst www.google.com and port ftp

但我收到此错误:

tcpdump: no suitable device found

各位,这可能是什么原因造成的?

答案1

tcpdump用于捕获流入或流出网络接口(以太网或 wifi)或 USB 端口等的数据包。您必须指定要监听的接口。使用该命令ifconfig找出系统中存在的所有网络接口的名称。在我的计算机上,ifconfig 命令显示:

eth6      Link encap:Ethernet  HWaddr 08:00:27:9a:24:9d  
          inet addr:10.0.0.21  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:69 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7131 (7.1 KB)  TX bytes:1350 (1.3 KB)
          Interrupt:10 Base address:0xd020 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:400 (400.0 B)  TX bytes:400 (400.0 B)

其中显示我的以太网接口的名称为eth6。您会注意到它分配的 IPv4 地址为 10.0.0.21,这告诉我我的网络连接(到我的 WiFi 路由器)工作正常。

因此我将发出命令:sudo tcpdump -i eth6 dst www.google.com 这将启动 tcpdump,它将捕获流入和流出我的 eth6 的所有数据包,但它将仅显示发往 www.google.com 的数据包

现在我需要创建与 www.google.com 的连接,因此在单独的终端窗口中,我输入:wget www.google.com 这将从 google.com 获取主页(index.html)。

当我切换回 tcpdump 的终端窗口时,我得到:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth6, link-type EN10MB (Ethernet), capture size 65535 bytes
15:05:50.436200 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [S], seq 4292128566, win 5840, options [mss 1460,sackOK,TS val 4294949922 ecr 0,nop,wscale 6], length 0
15:05:50.493477 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [.], ack 2638988837, win 92, options [nop,nop,TS val 4294949936 ecr 123640815], length 0
15:05:50.494124 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [P.], seq 0:112, ack 1, win 92, options [nop,nop,TS val 4294949936 ecr 123640815], length 112
15:05:50.596428 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [.], ack 1013, win 123, options [nop,nop,TS val 4294949962 ecr 123640915], length 0
15:05:50.901037 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [F.], seq 112, ack 1013, win 123, options [nop,nop,TS val 4294950038 ecr 123640915], length 0
15:05:50.956092 IP anurag-VirtualBox.33365 > maa03s05-in-f16.1e100.net.www: Flags [.], ack 1014, win 123, options [nop,nop,TS val 4294950052 ecr 123641277], length 0
^C
6 packets captured
10 packets received by filter
0 packets dropped by kernel

答案2

您可能需要以超级用户身份执行才能直接访问网络设备。

该命令。

编辑:澄清一下,该tcpdump命令也不会给你提供太多有用的信息。试试这个:

sudo tcpdump host stackoverflow.com

或者,如果sudo不可用:

su - ; tcpdump host stackoverflow.com

相关内容