При запуске tcpdump в командной строке пакеты отображаются в реальном времени по мере их получения. Однако, когда tcpdump передается по каналу, он использует буферизованный вывод. Опции -l и -U предоставлены, чтобы разрешить настройку этого. Однако я считаю, что независимо от того, какие параметры я установил, результат никогда не будет таким же быстрым, как при работе с необработанным интерфейсом командной строки. Я пробовал Python с подпроцессом, тройником и даже оболочкой Rust. Пакеты всегда отображаются в виде пакетов.

Есть идеи?

1 ответ1

0

У tcpdump теперь есть --immediate-mode , который решил эту проблему для меня. Чтобы заставить его работать, я использовал его вместе с -l .

Смотрите этот ответ.

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