ifconfig にはパケットが表示されますが、tcpdump には表示されません。

ifconfig にはパケットが表示されますが、tcpdump には表示されません。

ifconfigで送信/受信されたパケット数とtx / rx値を表示できます。インターフェイスが無差別モードのときにインターフェイスでtcpdumpを開くと、そのインターフェイスで送受信されるすべてのパケットが表示されるはずです。そうですか?

使用:

tcpdump -XX -e -n -s0 -i <iface>

(オプションに重複がある可能性があります:p)

ただし、送信されたすべてのパケットは表示されません。どんなアイデアがありますか?

編集する:またifconfigのマニュアルを読んだのですが、次のようになります。

「Ifconfigはカーネル内のネットワークインタフェースを設定するために使用されます。」

その場合、ifconfigはカーネルレベルでtx / rxを読み込みます。そうですか?ドライバーレベルでこれらの測定値を取得する方法はありますか?

編集2:また、カーネルと実行中のプログラムにパケットを送信するようにドライバをプログラムできますか?

編集3:スニッフィングプログラム作成できますか?どの形式に関係なく、インターフェイスに渡されるバイト数は何ですか?たぶんtcpdumpはパケットフォーマットを認識しないので、パケットを提供しないかもしれません。

答え1

iptables がトラフィックの発信をブロックしていることを確認してください。 iptables --list を使用して確認し、/etc/init.d/iptables stop を使用してすべてのルールを削除します。

答え2

tcpdump得るコピーパケットは、ネットワークスタックの上位層(おおよそのドライバからカーネルに渡される場所)から来ます。 (ソースはそこにあります。行って確認してください。)私はあなたが見ているtx / rx統計が何であるか、ネットワークカードの特定のドライバがわからないので、それがどこから来たのかわかりません。ethtoolサポートされている場合は、ドライバから直接データを要求できます。 (カーネルが追跡しない統計も含まれます。)

関連情報