2017-03-21 51 views
6

Próbuję zdiagnozować problem z siecią z tcpdump. I uruchomić poleceniezwijanie pokazuje brak wyjścia w tcpdump

tcpdump -i eth0 -nS host nameless.host.io 

Kiedy wydawać albo traceroute lub ping polecenia trafić nameless.host.io widzę informację od tcpdump ale kiedy używam curl do pobierania treści z przyjmującym

curl http://nameless.host.io/mycontent/data 

komenda curl zwraca zawartość oczekuję, ale nie widzę wyjścia z tcpdump. Host jest zdecydowanie "zewnętrzny", więc powinien wyjść na przewody.

Dlaczego tcpdump milczeć na temat pomyślnego polecenia curl?

+0

Chciałbym to wiedzieć, jak dobrze. –

+1

Czy możesz wymienić swoje interfejsy na komputerze, który wykonuje 'tcpdump'? Domyślam się, że próbujesz słuchać na interfejsie 'eth0', ale może używasz interfejsu Wi-Fi? Czy możesz podać więcej danych wejściowych? – Elyasin

Odpowiedz

4

mogę myśleć o 3 różnych sposobów, to może się zdarzyć -

1: zbyt wiele pakietów zbyt szybko, bufor pakietów do druku uruchamia pełne, a jądro „spada” curl pakiety wysyła przed tcpdump ma szansę wydrukować je Tobie. rozwiązaniem byłoby zwiększenie przestrzeni bufora, np. poprzez użycie --buffer-size=102400 (to poświęciłoby około 100MB pamięci RAM do bufora, nie jestem pewien jaki jest domyślny rozmiar, ale myślę, że jest w zakresie 1-4MB)

2: masz wiele "interfejsów" sieciowych i słuchasz niewłaściwego. Nie wiem, jak zapytać, jaki interfejs używa curl, ale można jawnie powiedzieć, że curl można pobrać za pomocą określonego interfejsu, wykonując curl --interface eth0 URL - i na Linux & Mac & BSD, można uzyskać listę dostępnych interfejsów wykonując sudo ifconfig (i myślę, że odpowiednik windowsa jest gdzieś w panelu sterowania, ale idk)

3: domyślny użytkownik tcpdump nie może odczytać pakietów zwinięcia użytkownika z jakiegoś powodu ... domyślnie okazuje tcpdump podczas przechwytywania przechodzi do własnego użytkownika o nazwie tcpdump, można spróbować przechwycić od tego samego użytkownika, że ​​zwinięcie działa tak, jak przy użyciu -Z curluser, lub zmusić tcpdump do przechwytywania jako root, wykonując -Z root

0

Czy wybierasz właściwy interfejs? (Eth.x, wlanX ....)

Spróbuj: tcpdump -s 0 -i [interface] host nameless.host.io and tcp port http