3

Я использую следующую версию tcpdump:

  • tcpdump версия 4.0.0
  • libpcap версия 1.0.0

Я хочу, чтобы tcpdump записывал в файл каждый захваченный пакет. В настоящее время я могу видеть только захваченные пакеты, если я выйду из tcpdump.

tcpdump -i em1 -w /tmp/pkts.pcap -s 1500

Мне нужно выйти, чтобы открыть /tmp/pkts.pcap - до тех пор я предполагаю, что tcpdump буферизуется. Есть ли способ заставить tcpdump записывать в файл сразу вместо буферизации?

1 ответ1

5

Используйте параметр -U в сочетании с параметром -w и проверьте, есть ли у вас версия libcap, которая поддерживает pcap_dump_flush() . Со страницы руководства (версия 4.3.0-1):

   -U     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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .