web-dev-qa-db-ja.com

tcpdumpエラー:Linuxに適切なデバイスが見つかりません

みんなはgoogle.comへのtcpdumpをテストしようとしています(ちなみにLinuxは初めてです)。

シェルに入力した内容は次のとおりです。

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

しかし、私はこのエラーを受け取ります:

tcpdump: no suitable device found

何が原因でしょうか?

1
Monkey

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これにより、eth6に出入りするすべてのパケットをキャプチャするtcpdumpが開始されますが、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
5
lithiumhead

ネットワークデバイスに直接アクセスするには、おそらくスーパーユーザーとして実行する必要があります。

コマンドをsudoします。

編集:明確にするために、そのtcpdumpコマンドもあまり有用な情報を提供しません。これを試して:

Sudo tcpdump Host stackoverflow.com

または、Sudoが利用できない場合:

su - ; tcpdump Host stackoverflow.com
5
Taywee