Как прочитать вывод tcpdump так же быстро, как он выводит его на терминал?

Как прочитать вывод tcpdump так же быстро, как он выводит его на терминал?

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

Есть идеи?

решение1

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

Видетьэтот ответ.

Связанный контент