我是否遭受了 DDoS 攻击?我应该怎么办?

我是否遭受了 DDoS 攻击?我应该怎么办?

目前我的服务器延迟非常严重,而且崩溃了。这是一台专用服务器,过去两天运行完全正常。

这个命令起什么作用?

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

这是我得到的:

    154 76.217.x.xx
     11 79.51.xx.xxx
     10 174.119.xx.xx
      9 201.230.xxx.xxx
      8 24.184.xx.xxx
      8 127.0.0.1
      6 50.51.xxx.xxx
      6 216.121.xxx.xxx
      4 80.203.xx.xxx
      4 24.186.xxx.xxx
      4 223.25.xx.xxx
      4 119.93.xx.xx

IP 旁边的数字是什么意思?它表示连接数吗?如果是这样……顶级 IP 正在对我进行 DDoS 攻击?

答案1

  • netstat打印网络连接
  • -n显示数字地址
  • grep :80过滤连接连接到端口 80
  • cut -c 45-仅获取第 4 列和第 5 列
  • cut -d: -f1取第一个字段,用冒号分隔
  • sort | uniq -c按 IP 地址排序并统计唯一 IP 的数量
  • sort -rn反转数字排序

您可以使用awk而不是cut -c 45-仅获取第五列:

netstat -n | grep :80 | awk '{ print $5 }' | cut -d: -f1 | sort | uniq -c | sort -rn | head

关于您的结果,这似乎很正常,没有 DDoS。请查看access_log以了解更多详细信息。

答案2

Quanta 和 DTest 解释了该命令的作用。每个人都会告诉你,几百个连接不算 DoS(当你至少有 5-10 个连接时再跟我说),我会进一步说,为了使其成为您会看到比上面显示的更多的条目(可能每个条目都有更多的连接)。


当你遇到服务器问题时不要跳转到奇特的原因(DDoS、宇宙射线、Z0MG H4X0R3D!等)——您很可能遇到了更无聊、更平凡的问题。

你说“它崩溃了”——你的意思是整个服务器都锁住了、崩溃了或者需要硬重启吗?
如果是这样,请检查你的 RAM(MemTest86+ 或类似产品)通常这就是问题所在。

如果不是真正的严重崩溃,请开始查看正常的日常故障排除项目:

  • 跑步top
    • 平均负载是多少?当你遇到问题时,它是什么?
    • 你使用了多少交换空间?当你遇到问题时,你使用的交换空间是否更多?(如果是,则为内存泄漏!)
    • 哪些程序正在尝试获取 CPU?
  • 运行操作系统的磁盘 I/O 信息工具(不是 Debian 用户,也许有人可以列出它们?)
    • 您的磁盘是否受到限制?(磁盘是否持续使用 100% 的带宽?)
  • 查看您的网络统计数据
    • 您的 ISP 的带宽是否达到上限?
  • 查看你的辅助程序(如果适用)
    • 数据库连接
    • 共享文件系统
    • 当你需要时可能被锁定/阻塞的任何其他资源

答案3

该数字是每个 IP 的唯一条目数(由 生成uniq -c

netstat -n将为您提供所有当前网络流量,然后您将其传输到grep :80,它仅抓取您 Web 服务器上的连接。接下来,我们用 截取行的前半部分cut -c 45-,然后用 截取 IP 后面的所有内容(从冒号开始),然后cut -f 1 -d ':'对其进行排序,使用计数 ( uniq -c) 获取唯一 IP,然后按相反顺序对其进行排序,以便最多的 IP 出现在顶部。

这并不一定意味着您遭受了 DDoS 攻击,因为大多数流量都来自单个 IP。有人可能出于内容或其他原因爬取您的网站。

相关内容