1

В настоящее время я делаю это, чтобы прочитать файл захвата сети:

tshark -r myfile icmp

Он печатает только ICMP-пакеты, которые являются протоколом поверх IP (не UDP или TCP).

Но myfile - это большой файл с большим количеством HTTP-трафика. Я обнаружил, что tshark требуется много времени для обработки этого файла, и причина в том, что он полностью обрабатывает все пакеты TCP, даже разбирает данные HTTP. Я понял это, потому что он печатает сообщения об ошибках, связанных с рассечением HTTP.

Так как я знаю, что ICMP-пакеты, которые я хочу, никогда не находятся внутри TCP, я попробовал это:

tshark -r myfile 'not tcp and icmp'
tshark -r myfile -2 -R 'not tcp' icmp

Но tshark все еще анализирует HTTP-пакеты (опять же, я знаю это, потому что вижу сообщения об ошибках HTTP-анализатора).

Я хочу сэкономить время (и избежать сбоев из-за ошибок анализатора), не разбирая протоколы более высокого уровня, когда протокол более низкого уровня не совпадает.

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

Я также попробовал опцию -O для включения определенных диссекторов, но это заставляет tshark печатать полные многострочные детали для каждого пакета, что не является тем, что я хочу.

Как я могу заставить tshark пропускать рассечение пакетов от определенных протоколов нижнего уровня?

Я использую tshark 1.10.6, но я мог бы использовать более новые версии, если это необходимо.

1 ответ1

0

Ваш синтаксис неверен. Похоже, вы смешиваете синтаксис фильтра отображения Wireshark и синтаксис фильтра захвата фильтра pcap .

В последней стабильной версии tshark (в настоящее время 2.4.0) вы можете указать фильтр отображения для использования с опцией -Y . Например:

tshark -r myfile -Y "icmp"

Опция -Y была доступна с версией 1.10.6.

В качестве альтернативы вы можете использовать фильтр чтения следующим образом, но я обычно придерживаюсь метода фильтра отображения выше:

tshark -r myfile -2R "icmp"

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