为了监视服务器和Web服务器之间的HTTP通信,我目前正在使用tcpdump
。这可以正常工作,但我想消除输出中的一些多余数据(我知道tcpflow
和wireshark
,但是在我的环境中不易使用)。
从tcpdump
手册页:
要打印所有与端口80之间的IPv4 HTTP数据包,即仅打印包含数据的数据包,而不打印例如SYN和FIN数据包以及仅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端口80和(((ip [2:2]-((ip [0]&0xf)<< 2))-((tcp [12]&0xf0)>> 2) )!= 0)'
提供以下输出:
19:44:03.529413 IP 192.0.32.10.http> 10.0.1.6.52369:标志[P。],seq 918827135:918827862,ack 351213824,win 4316,选项[nop,nop,TS val 4093273405 ecr 869959372],长度727
E ..... @ .............. P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK服务器:Apache / 2.2.3(Red Hat)内容类型:text / html;charset = UTF-8日期:2009年11月14日星期六18:35:22 GMT年龄:7149
内容长度:438<HTML> <HEAD> <TITLE>示例网页</ TITLE> </ HEAD> <body>
<p>您已访问此网页... </ p> </ BODY> </ HTML>
除了突出显示的部分,这几乎是完美的。这到底是什么,更重要的是,我要如何摆脱它?也许只是对命令末尾的表达式做了些微调整?