服务器突然卡住,鼠标动不了,远程连接直接断开,重启后没几分钟又不行了,查监控发现网络流量里全是超大的 ICMP 包 —— 你是不是也遇到过这种情况?别慌,这很可能是遭了 “死亡之 ping” 攻击。小编前阵子帮一家小公司处理过,他们的网站突然打不开,技术人员急得团团转,最后用这三步法搞定了。今天就把详细步骤教给你,遇到了照着做,很快就能恢复,一起往下看吧!
第一步:紧急止损,先让服务器喘口气
攻击正在进行时,最要紧的是先拦住那些恶意 ping 包,让服务器缓过来。这就像家里进了小偷,先把门关上再说。
临时关闭 ICMP 协议(ping 功能)
- Windows 系统:
- 用服务商的控制台登录服务器(远程连接断了的话,这个方法最管用)
- 打开 “控制面板→系统和安全→Windows Defender 防火墙→高级设置”
- 找到 “入站规则”,找到 “文件和打印机共享 (回显请求 – ICMPv4-In)”
- 右键选择 “禁用规则”,这样服务器就不会再响应 ping 请求了
- Linux 系统:
- 用 SSH 登录(如果还能登的话),输入命令 “sudo iptables -A INPUT -p icmp –icmp-type echo-request -j DROP”
- 回车执行,这条命令能瞬间挡住所有 ping 包,简单粗暴但有效
小编提醒,这一步是临时的,能快速让服务器恢复正常,但之后还得慢慢调整,总不能一直关着 ping 功能对吧?
重启网络服务
如果服务器还是很卡,关了 ICMP 也没好转,可以试试重启网络:
- Windows:在命令提示符里输 “netsh winsock reset”,然后重启服务器
- Linux:输 “sudo systemctl restart network”(CentOS)或 “sudo systemctl restart networking”(Ubuntu)
有次小编处理攻击时,服务器卡得连控制台都快登不上了,重启网络后立马顺畅了,你也可以试试。
第二步:找到源头,针对性拦截
攻击停下来后,得看看是谁在搞鬼,不然过阵子可能又来。就像知道了小偷是谁,下次才能提前防备。
查看攻击 IP
- Windows:打开 “事件查看器→Windows 日志→安全”,筛选 “ICMP” 相关事件,能看到发送超大 ping 包的 IP 地址
- Linux:输 “tcpdump -i eth0 icmp”,会显示正在发送 ICMP 包的 IP,按 Ctrl+C 停止查看
记下来这些 IP,一般都是连续发送大量包的那个,很好认。
拉黑攻击 IP
找到 IP 后,直接把它拉黑,不让它再访问服务器:
- Windows:在防火墙高级设置里,新建入站规则,选择 “阻止连接”,指定刚才记下的 IP
- Linux:输 “sudo iptables -A INPUT -s 攻击 IP -j DROP”(把 “攻击 IP” 换成实际地址,比如 192.168.1.100)
如果攻击 IP 很多,可能是分布式的,这时候单拉黑 IP 没用,得用后面说的第三步。
第三步:加固防护,防止再次中招
临时处理完了,得彻底加固,不然下次还可能被攻击。这就像家里换了防盗门窗,小偷再想来就难了。
限制 ping 包大小
不管什么系统,都可以设置最大能接收的 ping 包尺寸,超过就拒收:
- Windows:在注册表找到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”,新建 “DWORD 值”,命名为 “ICMPAllowBigPackets”,值设为 0
- Linux:用命令 “sudo iptables -A INPUT -p icmp –icmp-type echo-request -m length –length 65536: -j DROP”,意思是超过 65535 字节的 ping 包直接扔掉
这个设置很关键,“死亡之 ping” 的包都超大,设了这个就不怕了。
开启防火墙高级防护
现在的防火墙都有防 ICMP 攻击的功能,打开就行:
- Windows:在防火墙高级设置里,启用 “防御 ICMP flood 攻击”(不同版本名字可能不一样,找找类似的)
- Linux:装个 “fail2ban” 工具,配置好后能自动识别并拉黑频繁发送 ping 包的 IP
小编自己的服务器就开了这个,有次监测到一个 IP 在 1 分钟内发了 200 个 ping 包,立马被拉黑了,一点没影响服务器。
表格:不同系统操作对比,一目了然
操作步骤 | Windows 系统 | Linux 系统(Ubuntu/CentOS) |
---|---|---|
临时关 ICMP | 禁用防火墙入站规则中的 ICMP 请求 | 执行 iptables 命令拦截 echo-request |
重启网络 | netsh winsock reset + 重启服务器 | systemctl restart network |
限制 ping 包大小 | 修改注册表 ICMPAllowBigPackets | iptables 限制包长度 |
自动拉黑 IP | 防火墙规则 + 第三方工具 | fail2ban 自动拦截 |
自问自答:这些问题你可能也想问
问:关了 ICMP,会不会影响服务器正常工作啊?
答:基本不影响。平时服务器之间通信靠的是 TCP/UDP 协议,比如网站用的 80 端口、数据库用的 3306 端口,都和 ICMP 没关系。就是你自己想 ping 服务器看通不通的时候,收不到回复而已,不影响实际使用。
问:如果攻击很猛烈,这三步不管用怎么办?
答:可以联系服务器服务商,让他们在机房层面帮你拦截,服务商的防火墙更强大,能挡住大流量攻击。小编之前有个客户遭了大攻击,自己处理不了,服务商帮忙拦截后,几分钟就恢复了。
小编觉得,遇到 “死亡之 ping” 攻击别慌,记住 “先止损、再溯源、后加固” 这三步,大部分情况都能解决。其实这种攻击现在不算高级,只要平时做好防护,比如限制 ping 包大小、开着防火墙,基本不会中招。就算中了,按这方法一步步来,也能很快搞定。
希望这些能帮到你,要是你有其他处理经验,欢迎在评论区分享,让大家都能少走弯路~