使用 tcpdump 嗅探 80 端口的访问看看谁最高 ?
参考回答
要使用 tcpdump 嗅探 80 端口的流量,并统计访问量最高的 IP,可以按以下步骤操作:
sudo tcpdump -i eth0 'tcp port 80' -nn -q | awk '{print $3}' | cut -d '.' -f 1-4 | sort | uniq -c | sort -nr | head -n 1
详细讲解与拓展
sudo tcpdump -i eth0 'tcp port 80' -nn -q:sudo:需要以管理员权限运行tcpdump。-i eth0:指定网络接口,eth0是常见的接口名,具体需要根据你的系统来调整。如果你不确定接口名,可以通过ifconfig或ip a命令查看。'tcp port 80':只捕获 80 端口的 TCP 数据包,这是 HTTP 服务的常用端口。-nn:禁用域名解析和端口号的映射,保持 IP 和端口的数字格式。-q:简化输出,只显示最基本的信息,去除冗余。
awk '{print $3}':awk用于提取每一行的第三列(一般来说,第三列是 IP 地址,例如192.168.1.1.12345 > 192.168.1.2.80),以便进一步分析访问的源 IP。
cut -d '.' -f 1-4:cut命令用于提取 IP 地址的前 4 个字段(即完整的 IP 地址),删除端口号部分。
sort:sort命令将 IP 地址按字母顺序排序,方便后续去重和统计。
uniq -c:uniq -c统计每个 IP 地址出现的次数,这里就能看到每个 IP 访问 80 端口的次数。
sort -nr:sort -nr对统计结果按访问次数进行降序排序,确保访问量最多的 IP 排在前面。
head -n 1:head -n 1只输出访问次数最多的一个 IP 地址及其访问次数。
示例输出:
假设输出如下:
200 192.168.1.10
这表示 IP 地址 192.168.1.10 访问了 80 端口 200 次,是访问量最高的 IP。
总结
- 使用
tcpdump捕获 80 端口的流量,结合awk、cut、sort和uniq等工具,可以轻松统计访问量最高的 IP。 - 这种方法适合快速查看 HTTP 流量中访问量最多的客户端 IP。