Bir sunucu ve bir web sunucusu arasındaki HTTP trafiğini izlemek için şu anda kullanıyorum tcpdump
. Bu iyi çalışıyor, ancak çıktıdaki bazı gereksiz verilerden kurtulmak istiyorum (hakkında tcpflow
ve bildiğim wireshark
halde ortamımda hazır değiller).
Gönderen tcpdump
adam sayfası:
Tüm IPv4 HTTP paketlerini bağlantı noktası 80'e ve bağlantı noktasından yazdırmak için, örneğin SYN ve FIN paketlerini ve yalnızca ACK paketlerini değil, yalnızca veri içeren paketleri yazdırın.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Bu komut
sudo tcpdump -A 'src example.com ve tcp portu 80 ve (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
aşağıdaki çıktıyı sağlar:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Bayraklar [P.], skala 918827135: 918827862, 351213824 ack, 4316 kazanmak, seçenekler [no, no.
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ... __ HTTP / 1.1 200 Tamam Sunucu: Apache / 2.2.3 (Red Hat) İçerik Türü: text / html; charset = UTF-8 Tarih: Sat, 14 Kas 2009 18:35:22 GMT Yaş: 7149
İçerik Uzunluğu: 438<HTML> <HEAD> <TITLE> Örnek Web Sayfası </TITLE> </HEAD> <body>
<p> Bu web sayfasına ulaştınız ... </p> </BODY> </HTML>
Bu, vurgulanan kısım dışında neredeyse mükemmel. Bu nedir, son - daha önemlisi - ondan nasıl kurtulurum? Belki de komutun sonundaki ifadeye birazcık titriyordur?