используя tcpdump, я хотел бы отфильтровать ответы, которые возвращаются с сервера кеша squid, только на те ответы, которые вернулись из кеша. это означает, что мне нужно фильтровать в соответствии со значением заголовка X-CACHE, если это значение HIT, я должен его показать, иначе ответ не из кеша. есть идеи, каким должен быть мой фильтр tcpdump?
Вы рассматривали возможность использования нгреп вместо tcpdump?
Похоже, что tcpdump может сопоставлять содержимое пакета только для определенных байтов, а не произвольно искать в пакете строку. Посмотри на это расширенный список фильтров для некоторого руководства.
Обходной путь: если вы добавите -s0 -A -w -
(показать целые пакеты, ASCII, записать в стандартный вывод) в параметры tcpdump, затем вы можете использовать grep с некоторым контекстом, чтобы отображать только те пакеты, которые показывают, где X-Cache: HIT.
Я не верю, что это возможно. Вы можете захватить весь трафик на правильной комбинации порта / IP, а затем отфильтровать его с помощью wirehark или аналогичного.
Вы также можете использовать ngrep (подумайте о grep для вашей сети)
Хотя для этого типа проблем я обычно прибегаю к использованию libpcap и ruby для написания быстрого скрипта. Затем вы можете записывать только те пакеты, которые вам нужны, или только информацию из тех пакетов, которые вам нужны.
С Ruby это довольно безболезненно, я уверен, что python или аналогичный тоже будет простым.