ネットワークで何が起こっているかを監視しようとしているので、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
を試しましたが、機能しました(複数のパケットをキャプチャしました)。しかし、すべてのインターフェイスで監視するように要求した場合にのみ機能するのはなぜですか?
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
に指定すると、パケット印刷を許可する使用可能なインターフェイスを選択することになります。そのため、この場合は機能します。
私は今その前にいませんが
すべてのインターフェイスを一覧表示するtcpdumpのスイッチがあり、必要なインターフェイスを具体的に指定できます。 tcpdump --list-interfaces
を試してみてください。そうすれば、たとえば次のことができます。 tcpdump -i eth0
または聞きたい特定のインターフェース。