このオプションを使用してキャプチャをファイルに保存すると、Red Hat Enterprise Linux Server release 6.5
結果ファイルは空になります。tcpdump
-w
[root@plop ~]# tcpdump -n -w tcpdump.cap
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C217 packets captured
217 packets received by filter
0 packets dropped by kernel
[root@plop ~]# cat tcpdump.cap
[root@plop ~]# ll tcpdump.cap
-rw-r-----. 1 root root 0 Aug 25 14:13 tcpdump.cap
[root@plop ~]#
>
また、andを使用してコマンド出力をリダイレクトしようとしましたが、&>
常に空のファイルが表示されます。
その理由は何ですか?
気づく:
- ファイルにリダイレクトされない場合、端末は正しい出力(多数のパケット)を見ることができます。
- 同じことをしましたが、期待
thsark
どおりに動作しました(出力ファイルが正しい)。 - バージョン
tcpdump
はtcpdump version 4.1-PRE-CVS_2012_02_01
- バージョン
libpcap
はlibpcap version 1.4.0
- そのオプションを試しましたが、
-U
問題は解決されませんでした。
答え1
そのオプションを追加してみてください-U
。
マニュアルページから:
-U
--packet-buffered
If the -w option is not specified, make the printed packet output ``packet-buffered''; i.e., as the description of the contents of each packet is printed, it will be written to the standard
output, rather than, when not writing to a terminal, being written only when the output buffer fills.
If the -w option is specified, make the saved raw packet output ``packet-buffered''; i.e., as each packet is saved, it will be written to the output file, rather than being written only when
the output buffer fills.
The -U flag will not be supported if tcpdump was built with an older version of libpcap that lacks the pcap_dump_flush() function.
答え2
tcpdump
出力ファイルに書き込めない場合(たとえば、権限またはディスクがいっぱいの場合)、その事実を報告しない既知の問題があります。
この場合、出力ファイルは正常に作成されますが、データは記録されず、ファイルシステムがいっぱいになる可能性があります。
strace
これはを介してやり直し、書き込み失敗を観察することで確認できます。
解決策は、問題のファイルシステムからスペースを消去するか、スペースtcpdump
が存在するファイルシステムを指すことです。
答え3
私はこのcmdを使用しました: sudo tcpdump -v -w ~/Desktop/tout_135.pcap -i eth0 host 10.211.55.*
結果ファイルにはデータがなく、chmod 700または権限を付与したいすべてのエントリのみが含まれます。 tcpdumpをもう一度実行すると、ジャジャン!データが生成されます!
答え4
tcpdump
正しいネットワークインターフェースを見ていることを確認してください。または、-i any
すべてのインターフェイスで表示できます。