1

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

Я использовал это правило фильтра: tcp.dstport != 1337 and tcp.srcport != 1337 чтобы удалить все соединения TCP по порту 1337. Но, как кажется, это правило также удаляет весь не TCP-трафик. Например, DNS-запросы больше не отображаются. Если я изменю фильтр на (tcp.dstport != 1337 and tcp.srcport != 1337) or ! tcp показывает весь трафик, кроме порта 1337/tcp, но, похоже, не является "правильным" способом сделать это. Является ли использование tcp.dstport или tcp.srcport равным для фильтрации только tcp-трафика и последующей фильтрации порта?

1 ответ1

1

Ваш фильтр должен быть:

!(tcp.port == 1337)

объяснение

В Wireshark есть 2 вида фильтров:

  1. Фильтр захвата: используется при захвате трафика (да?) и построен с использованием синтаксиса Berkeley Packet Filter (BPF) (проверьте man- страницу pcap-фильтра). libpcap - это базовая библиотека, выполняющая фактический захват.

  2. Фильтр отображения: используется для уменьшения количества трафика, который вы видите, и построен с использованием собственного синтаксиса (некоторые перекрываются с синтаксисом BPF).

Ваш фильтр отображения tcp.dstport != 1337 следует читать как «пакет содержит поле с именем tcp.port со значением, отличным от 1337». В результате пакеты без поля tcp.port будут отфильтрованы.

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