2012-03-26 2 views
18

Я пытаюсь отфильтровать вывод tcpdump на основе длины пакетов. Но мне не повезло.Как фильтровать вывод tcpdump на основе длины пакета

Это простой выход для команды;

ТСРйитр -n -i eth0 ДСТ порт 443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0 
E..<[email protected]@.......>K.<.0... 
........9............ 
[email protected] 


17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0 
[email protected]@.......>K.<.0... 
...2............. 
[email protected]:..U 


17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171 
[email protected]@..f....>K.<.0... 
...2............. 
[email protected]:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H... 
.......9.8.......5... .....E.D.3.2...........A...../......... 
...1.........alice.sni.velox.ch. 
.................#.. 


17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0 
[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W 


17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7 
E..;[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W......0 

Я хочу видеть пакеты только если они имеют более 100bytes длину. для этого случая - только 3-й пакет.

опция [NOP, NOP, TS вал 7028787 ECR 974439509], длина 171

Я посмотрел на человеке страницах для ТСРйитра, но не смог найти какой-либо полезный параметр. здесь упоминается выражение «большая длина»; http://www.ethereal.com/docs/man-pages/tcpdump.8.html, но я тоже не мог использовать это выражение.

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100 
tcpdump: syntax error 

Спасибо за любую помощь.

ответ

26

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

Рабочий пример:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100 

Должен работать - dst port 443 and greater 100 является полным выражением фильтра, который проверяет пакеты, которые посылаются в TCP или UDP порта 443 и которые имеют общую длины (в том числе канального уровня, IP и заголовки TCP) больше, чем 100.

НЕ рабочий пример:

tcpdump -n -i eth0 dst port 443 -A -x greater 100 

не получится - dst в dst port 443 рассматривается как начало выражения фильтра, а это означает, что он и все после него, включая-A и -x, рассматриваются как часть выражения фильтра, но -A и -x являются недопустимыми компонентами выражения фильтра. Предполагается, что они являются параметрами командной строки, поэтому они должны идти до всех аргументов без флага, включая компоненты выражения фильтра.

Смежные вопросы