这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url。一般做这样的统计时,我们经常会使用网站访问日志来统计。当我们来到一个陌生的服务器环境,需要立即统计当前前十条被访问最多的url,来初步确定是否存在攻击行为,使用tcpdump则简单得多,因为我们不需要关心网站日志在哪,不需要考虑网站日志有没有开启之类的问题,直接用tcpdump捕捉当前的http包,再进一步过滤,就会得出我们想要的统计。此功能已集成到EZHTTP,下面是效果图:
下面介绍其统计方法。
1、捕捉10秒的数据包。
- tcpdump -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -w /tmp/tcp.cap -s 512 2>&1 &
- sleep 10
- kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
此命令表示监控网卡eth0,捕捉tcp,且21-22字节字符为GE或者PO,表示匹配GET或者POST请求的数据包,并写到/tmp/tcp.cap文件。
2、这时候我们得到最新10秒的二进制数据包文件,我们下一步就是通过strings命令来找出GET/POST的url以及Host。
- strings /tmp/tcp.cap | grep -E "GET /|POST /|Host:" | grep --no-group-separator -B 1 "Host:" | grep --no-group-separator -A 1 -E "GET /|POST /" | awk '{url=$2;getline;host=$2;printf ("%s\n",host""url)}' > url.txt
此命令是本文的关键,通过strings显示二进制文件tcp.cap所有可打印字符,然后通过grep和awk过滤出http请求,并把拼接得到的url(包括域名+uri)写进一个文件url.txt。
3、这时我们拿到了近10秒钟所有的访问url,接下来的统计就容易得出,比如:
统计QPS:
- (( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))
排除静态文件统计前10访问url:
- grep -v -i -E "\.(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n 10
转载自: https://www.centos.bz/2014/07/count-http-request-with-tcpdump/
相关推荐
本教程将详细介绍如何利用tcpdump进行网络数据包捕获,并通过awk工具进行后续的数据处理,以实现基于特定端口的流量统计。 tcpdump是一款强大的网络封包分析软件,它能够实时捕获网络中的数据包,同时可以将捕获到...
tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获和分析网络上的数据包。这个“tcpdump离线.rar”压缩包包含两个RPM(Red Hat Package Manager)格式的软件包:libpcap-1.5.3-12....
1. 网络调试:开发Android应用时,可以使用tcpdump定位网络请求问题,查看数据包内容。 2. 安全检测:检测网络通信是否被中间人攻击,检查SSL/TLS证书。 3. 性能优化:通过分析网络流量,了解应用的网络负载,优化...
tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并进行分析。在Linux或类Unix操作系统上,tcpdump是标准的网络诊断工具,能够帮助用户深入理解网络流量,查找...
tcpdump是一款广泛使用的网络封包分析工具,主要在命令行环境下操作,允许用户实时监控和记录网络上的数据传输。这个工具对于网络管理员、系统管理员以及IT专业人士来说是必不可少的,因为它可以帮助他们诊断网络...
tcpdump是一款功能强大的网络数据包捕获工具,广泛应用于网络监控、故障排查和安全审计等领域。本文档将深入探讨tcpdump的高级过滤技巧,通过具体的示例帮助读者掌握如何精确地筛选网络流量,以满足复杂场景下的数据...
在OpenWrt上运行tcpdump是一项基础而重要的网络诊断任务,tcpdump是一个强大的网络分析工具,它可以捕获网络上的数据包并提供详细的信息,帮助我们理解网络流量、检测问题或进行安全审计。以下是对OpenWrt环境安装和...
tcpdump还支持许多其他高级功能,如时间戳、统计报告、多接口监听等。此外,其输出结果通常包含数据包的源和目标地址、端口号、协议类型、时间戳以及部分数据包载荷内容。 在网络安全领域,tcpdump被广泛用于监控...
tcpdump是一款广泛使用的开源网络数据包分析工具,用于捕获和分析网络上的数据包。它在IT领域中扮演着至关重要的角色,特别是在网络诊断、安全审计和协议开发中。tcpdump-4.9.2是该软件的一个版本,此版本可能包含了...
tcpdump是一款广泛使用的网络数据包分析工具,主要用于捕获、记录和分析网络上的数据包。在Linux和Unix系统中,它是标准的网络诊断工具之一,而在这个案例中,我们讨论的是tcpdump的Windows版本。这个压缩包...
tcpdump源码编译,需要多个部件的源码进行顺序编译而成。 m4-1.4.19.tar.gz flex-2.6.4.tar.gz bison-3.7.6.tar.gz libpcap-1.10.4.tar.gz tcpdump-4.99.4.tar.gz tar xvf *.tar解压后,分别执行./configure 和make ...
Tcpdump可以配合正则表达式进行复杂过滤,如`tcpdump -i any "(GET|POST) /some/url HTTP"`将只显示包含指定URL的GET或POST请求。 总结来说,Tcpdump是Linux下强大的网络数据包分析工具,通过libpcap库实现对网络...
2. NFS 请求和响应:tcpdump可以捕获NFS请求和响应报文,包括读取、写入、目录列表、文件属性等操作。可以使用-v选项来显示更多的细节,包括文件类型、存取模式、uid和gid、文件大小等信息。 3. Appletalk/DDP报文...
tcpdump是一款广泛使用的网络分析工具,它允许用户在操作系统层面捕获网络上的数据包,用于诊断网络问题、监控网络通信或者进行网络安全分析。这个离线安装包是为那些无法连接到互联网或者需要在隔离环境中安装...
tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并进行分析。在Linux或Unix系统中,tcpdump是标准的网络诊断和故障排查工具,它可以帮助我们理解网络流量模式,...
4. **性能优化**:开发者可以通过分析应用程序产生的网络流量,找出可能存在的性能瓶颈,如高延迟的请求、不必要的数据传输等。 5. **故障排除**:当网络通信出现问题时,tcpdump可以帮助定位问题所在,比如确认...
4. **协议分析**:开发者可以借助TcpDump学习和验证不同网络协议的实现。 TcpDump-4.6.2版本的源代码包含以下组件: - `configure`和`Makefile`: 这些文件用于构建和配置TcpDump,用户需要运行`./configure`和`...
tcpdump是一款广泛使用的开源网络数据包分析工具,它允许用户实时捕获并分析网络上的数据包。这个资源包含了tcpdump的4.0和3.9两个版本的源代码,对于理解网络协议、学习网络监控以及进行网络调试具有极高的价值。 ...
若只想监控特定端口,如80(HTTP),则使用`tcpdump port 80`。 4. 保存输出:使用`-w`选项可以将捕获的数据包保存到文件,如`tcpdump -w capture.pcap`。 5. 查看输出:可以使用`tcpdump -r capture.pcap`来重新...
4. **协议分析**:学习和理解网络协议的工作机制,例如TCP三次握手、HTTP请求响应等。 六、注意事项 使用tcpdump时要注意隐私和法律问题,因为它可以捕获所有经过选定接口的数据包。在企业环境中,确保遵守数据保护...