एक सर्वर और एक वेब सर्वर के बीच HTTP ट्रैफिक की निगरानी के लिए, मैं वर्तमान में उपयोग कर रहा हूं tcpdump
। यह ठीक काम करता है, लेकिन मैं आउटपुट में कुछ शानदार डेटा से छुटकारा पाना चाहता हूं (मुझे इसके बारे में पता है tcpflow
और wireshark
, लेकिन वे मेरे वातावरण में आसानी से उपलब्ध नहीं हैं)।
से tcpdump
आदमी पेज:
पोर्ट और 80 से सभी IPv4 HTTP पैकेटों को प्रिंट करने के लिए, केवल उन पैकेटों को प्रिंट करें, जिनमें डेटा हो, उदाहरण के लिए, SYN और फिन पैकेट और 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 port 80 और (((IP [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] और 0xf0) >> 2) )! = 0) '
निम्नलिखित आउटपुट प्रदान करता है:
19: 44: 03.529413 आईपी 192.0.32.10.http> 10.0.1.6.52369: झंडे [पी।], Seq 918827135: 918827862, ack 351213424, 4316 जीतें, विकल्प [nop, nop, TS val 4093273405 ecr 86995937372 ”
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 ओके सर्वर: अपाचे / 2.2.3 (रेड हैट) सामग्री-प्रकार: पाठ / एचटीएमएल; charset = UTF-8 दिनांक: शनि, 14 नवंबर 2009 18:35:22 GMT आयु: 7149
सामग्री-लंबाई: 438<HTML> <HEAD> <TITLE> उदाहरण वेब पेज </ TITLE> </ HEAD> <body>
<p> आप इस वेब पेज पर पहुंच गए हैं ... </ p> </ BODY> </ HTML>
यह हाइलाइट किए गए हिस्से को छोड़कर लगभग सही है। यह क्या है, अंत - अधिक महत्वपूर्ण बात - मैं इससे कैसे छुटकारा पाऊं? हो सकता है कि यह कमांड के अंत में अभिव्यक्ति के लिए सिर्फ एक छोटा सा मोड़ है?