方法一:在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