Для мониторинга HTTP-трафика между сервером и веб-сервером я сейчас использую tcpdump
. Это прекрасно работает, но я хотел бы избавиться от некоторых лишних данных в выводе (я знаю о tcpflow
и wireshark
, но они не доступны в моей среде).
Со tcpdump
страницы руководства :
Печатать все HTTP-пакеты IPv4 в порт 80 и из него, т. Е. Печатать только пакеты, содержащие данные, а не, например, пакеты SYN и FIN и пакеты только для ACK.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Эта команда
sudo tcpdump -A 'src example.com и tcp порт 80 и (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
обеспечивает следующий вывод:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Flags [P.], seq 918827135: 918827862, ack 351213824, win 4316, опции [nop, nop, TS val 4093273405 ecr 869959372], длина 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Сервер: Apache / 2.2.3 (Red Hat) Тип содержимого: текст / html; charset = UTF-8 Дата: сб, 14 ноября 2009 18:35:22 GMT Возраст: 7149
Длина контента: 438<HTML> <HEAD> <TITLE> Пример веб-страницы </ TITLE> </ HEAD> <body>
<p> Вы достигли этой веб-страницы ... </ p> </ BODY> </ HTML>
Это почти идеально, за исключением выделенной части. Что это, конец - что более важно - как мне избавиться от этого? Может быть, это просто немного подправить выражение в конце команды?