web-dev-qa-db-ja.com

tcpdumpがパケットをキャプチャしていません

ネットワークで何が起こっているかを監視しようとしているので、tcpdumpコマンドを試しました。使い方を学んでいるところなので、少し遊んでみようと思いました。

私の問題は、パラメータなしでtcpdumpだけを使用してパケットをキャプチャできないことです。

tcpdumpと入力すると、次の答えが得られます。

tcpdump:パケット印刷はリンクタイプBLUETOOTH_HCI_H4_WITH_PHDRではサポートされていません:-wを使用してください

だから私はtcpdumpを試しました:tcpdump -w archivitoそして私はこれを持っています:

bluetooth0でリッスン、リンクタイプBLUETOOTH_HCI_H4_WITH_PHDR(Bluetooth HCI UARTトランスポート層と疑似ヘッダー)、

キャプチャサイズ65535バイト

キャプチャされた0パケット

フィルタによって受信された62パケット

カーネルによってドロップされた0パケット

Archivitoファイルが空だったので、試してみました:tcpdump port 80そして次の返信があります:

tcpdump:Bluetoothリンク層タイプのフィルタリングは実装されていません

Tcpdumpから出力を取得するにはどうすればよいですか?このコマンドのマニュアルページを読みましたが、なぜそれが機能しないのか理解できませんでした。

そこで、Sudo tcpdump -w archivitoを試してみたところ、次の出力が得られました。

tcpdump:警告:eth0:IPv4アドレスが割り当てられていませんtcpdump:eth0でリッスン、リンクタイプEN10MB(イーサネット)、キャプチャサイズ65535バイト

それはしばらくそこに残ります、しかし私がまだ得るすべては

キャプチャされた0パケット

フィルタによって受信された0パケット

カーネルによってドロップされた0パケット

最後にSudo tcpdump -i anyを試しましたが、機能しました(複数のパケットをキャプチャしました)。しかし、すべてのインターフェイスで監視するように要求した場合にのみ機能するのはなぜですか?

1
Rosamunda

tcpdumpのマニュアルページによると:

   -i     Listen  on  interface.   If  unspecified, tcpdump searches the system interface list for the lowest numbered, configured up interface (excluding loop‐
          back), which may turn out to be, for example, ``eth0''.

          On Linux systems with 2.2 or later kernels, an interface argument of ``any'' can be used to capture packets from all interfaces.  Note  that  captures
          on the ``any'' device will not be done in promiscuous mode.

したがって、出力を見ると、最初に使用可能なインターフェイスはbluetooth0であり、パケットの印刷が許可されていないため、エラーが発生しているようです。

ただし、-iフラグをanyに指定すると、パケット印刷を許可する使用可能なインターフェイスを選択することになります。そのため、この場合は機能します。

9
nKn

私は今その前にいませんが

すべてのインターフェイスを一覧表示するtcpdumpのスイッチがあり、必要なインターフェイスを具体的に指定できます。 tcpdump --list-interfacesを試してみてください。そうすれば、たとえば次のことができます。 tcpdump -i eth0または聞きたい特定のインターフェース。

4
barlop