Jak filtrować ruch http w Wireshark?


88

Podejrzewam, że mój serwer ma ogromną liczbę żądań HTTP od swoich klientów. Chcę zmierzyć wielkość ruchu HTTP. Jak mogę to zrobić za pomocą Wireshark? A może istnieje alternatywne rozwiązanie przy użyciu innego narzędzia?

Tak wygląda pojedynczy ruch http żądanie / odpowiedź w Wireshark. Ping jest generowany przez WinAPI funciton :: InternetCheckConnection () alt text http://yowindow.com/shared/ping.png

Dzięki!

Odpowiedzi:


72

Pakiety ping powinny używać typu ICMP 8 (echo) lub 0 (odpowiedź echa), aby można było użyć filtra przechwytywania:

icmp

oraz filtr wyświetlania:

icmp.type == 8 || icmp.type == 0

W przypadku HTTP można użyć filtra przechwytywania:

tcp port 80

lub filtr wyświetlania:

tcp.port == 80

lub:

http

Zauważ, że filtr httpnie jest równoważny dwóm pozostałym, które obejmują pakiety uzgadniania i zakończenia.

Jeśli chcesz zmierzyć liczbę połączeń, a nie ilość danych, możesz ograniczyć filtry przechwytywania lub wyświetlania do jednej strony komunikacji. Na przykład, aby przechwycić tylko pakiety wysłane do portu 80, użyj:

dst tcp port 80 

Połącz to z httpfiltrem wyświetlacza lub użyj:

tcp.dstport == 80 && http

Aby uzyskać więcej informacji na temat filtrów przechwytywania, przeczytaj „ Filtrowanie podczas przechwytywania ” w podręczniku użytkownika Wireshark, stronie filtrów przechwytywania na wiki wiki Wireshark lub stronie podręcznika pcap-filter (7) . Aby wyświetlić filtry wyświetlania, wypróbuj stronę filtrów wyświetlania na wiki Wiki Wireshark. Okno „Filtr Wyrażenie” może pomóc zbudować filtry wyświetlania.


1
Przepraszam, zapomniałem podać szczegóły żądania „ping”. Jest to sposób pingowania w systemie Windows. Wygląda na to, że icmp nie ma związku z moją sprawą.
par

Zobacz zrzut ekranu ping w Wireshark, który właśnie załączyłem
par

Zmieniłem pytanie z „ping” na „http”, więc odpowiedź nie ma sensu w kontekście, ale daje +1, ponieważ jest to dobra odpowiedź na ping.
Simeon Pilgrim

18

Po prostu użyj takiego filtra DisplayFilter http:

wyświetl przykład filtra


Kiedy to robię, wyświetlam 0, otrzymuję 45 000 i odwiedzam strony internetowe, jakieś pomysły? Patrzę na Wi-Fi: en0
SuperUberDuper

7

To nie jest ping. Ping, jak już powiedział outis, jest żądaniem echa ICMP. Twój ślad wyświetla nawiązanie i natychmiastowe zakończenie połączenia HTTP i to właśnie InternetCheckConnection()działa. Adres IP, o którym mowa, 77.222.43.228, rozwiązuje problem pod adresem http://repkasoft.com/ , który, jak sądzę, jest adresem URL, który przekazujesz InternetCheckConnection().

Możesz filtrować ruch przy użyciu tego adresu IP, używając filtra przechwytywania lub wyświetlania host == 77.222.43.228.


2

Używając Wireshark 1.2+, uruchomiłbym ten plik wsadowy:

:: Script to save a wireshark trace
:: tshark -D to get interface id
@echo off
C:
cd C:\Temp\NetTracing
set PATH=%PATH%;C:\Program Files\Wireshark
echo Tracing host 127.1 or 172.1.1.1 or 10.0.0.1

tshark.exe -i 4 -a duration:900 -S -f "tcp port 80" -w trace.cap
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.