方法一:在awk中已经判断好并发连接数量的ip地址,传给while read执行防火墙规则封掉对应的ip。root@centos8 ~]# cat ddos.sh#!/bin/bashss -nt |awk -F '[ :]+' '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip)if(ip[i]>100) print i}'|awk -F ']' '{print $1}' |while read IP;do iptables -A INPUT -s $IP -j REJECT;done方法二:取出ip地址并排序,if判断并发超过100的ip,并执行防火墙规则封掉对应的ip。root@centos8 ~]# cat deny_dos.sh#!/bin/bashLINK=100while true;do ss -nt | awk -F"[[:space:]]+|:" '/^ESTAB/{print $(NF-2)}' |tr -d "]"|sort |uniq -c|while read count ip;do if [ $count -gt $LINK ];then iptables -A INPUT -s $ip -j REJECT fi donedoneroot@centos8 ~]##chmod +x /root/deny_dos.sh[root@centos8 ~]#crontab -e[root@centos8 ~]#crontab -l */10 * * * * /root/deny_dos.sh 本栏目推荐文章解决 DELPHI 中执行外部命令出现屏幕一闪的问题的方法网络攻击技术(二)——Cross-site scripting网络攻击技术开篇——SQL Injectionoracle清除日志4- if 流程语句和案例Linux基础命令 [补档-2023-06-28]Splunk 输出计算和转换 eval命令案例分享:游戏行业各岗位的KPI绩效指标制定探索短链接:让网络分享更便捷详讲网络流防火墙 命令 案例 日志 网络防火墙 命令 案例 日志 日志 防火墙firewalld位置 防火墙 时间nignx日志 防火墙iptables网络 防火墙 网络ipv6 ipv 防火墙iptables日志 防火墙ubuntu网络 防火墙amp liunx网络 firewall-cmd防火墙firewall命令 防火墙 命令linux