使用 tcpdump 嗅探 80 端口的访问看看谁最高 ?
参考回答
要使用 tcpdump
嗅探 80 端口的流量,并统计访问量最高的 IP,可以按以下步骤操作:
详细讲解与拓展
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。