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


2

伙计们我试图测试一个tcpdump到google.com(顺便提一下我是Linux的新手)。

所以这就是我在shell中输入的内容:

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

但我得到这个错误:

tcpdump: no suitable device found

怎么可能是原因呢?

Answers:


5

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

当我发出命令tcpdump时,这会不断监视我并显示终端中捕获的数据包吗?或者捕获的这些数据包存储在哪里?

1
当流量流入和流出时,将实时捕获和显示数据包。如果要将数据包存储在硬盘上的文件中,请使用-w标志,如tcpdump的手册页中所述 这里
lithiumhead

5

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

苏多命令。

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

sudo tcpdump host stackoverflow.com

或者如果 sudo 不可用:

su - ; tcpdump host stackoverflow.com
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.