使用 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
Bash

详细讲解与拓展

  1. sudo tcpdump -i eth0 'tcp port 80' -nn -q
    • sudo:需要以管理员权限运行 tcpdump
    • -i eth0:指定网络接口,eth0 是常见的接口名,具体需要根据你的系统来调整。如果你不确定接口名,可以通过 ifconfigip a 命令查看。
    • 'tcp port 80':只捕获 80 端口的 TCP 数据包,这是 HTTP 服务的常用端口。
    • -nn:禁用域名解析和端口号的映射,保持 IP 和端口的数字格式。
    • -q:简化输出,只显示最基本的信息,去除冗余。
  2. awk '{print $3}'
    • awk 用于提取每一行的第三列(一般来说,第三列是 IP 地址,例如 192.168.1.1.12345 > 192.168.1.2.80),以便进一步分析访问的源 IP。
  3. cut -d '.' -f 1-4
    • cut 命令用于提取 IP 地址的前 4 个字段(即完整的 IP 地址),删除端口号部分。
  4. sort
    • sort 命令将 IP 地址按字母顺序排序,方便后续去重和统计。
  5. uniq -c
    • uniq -c 统计每个 IP 地址出现的次数,这里就能看到每个 IP 访问 80 端口的次数。
  6. sort -nr
    • sort -nr 对统计结果按访问次数进行降序排序,确保访问量最多的 IP 排在前面。
  7. head -n 1
    • head -n 1 只输出访问次数最多的一个 IP 地址及其访问次数。

示例输出:

假设输出如下:

  200 192.168.1.10

这表示 IP 地址 192.168.1.10 访问了 80 端口 200 次,是访问量最高的 IP。

总结

  • 使用 tcpdump 捕获 80 端口的流量,结合 awkcutsortuniq 等工具,可以轻松统计访问量最高的 IP。
  • 这种方法适合快速查看 HTTP 流量中访问量最多的客户端 IP。

发表评论

后才能评论