目前我的服务器延迟非常严重,而且崩溃了。这是一台专用服务器,过去两天运行完全正常。
这个命令起什么作用?
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
过滤连接连接到端口 80cut -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。有人可能出于内容或其他原因爬取您的网站。