CentOS能否根据流量自动关闭端口?

能否在某个端口的流量达到指定值后关闭或者运行特定的命令?
2025-04-29 18:13:59
推荐回答(1个)
回答1:

答案:能。

案例:举个简单例子,有个需求,需要在发送流量超过20kB/s时,输出“流量超标”。

解答:可以编写简单的shell脚本实现。vim test.sh编辑如下,保存后sh test.sh运行即可

#!/bin/bash

main(){

TRAFFIC=`sar -n DEV 1 1|awk 'NR==5 {print $6}'|awk -F "." '{print $1}'`

if [ $TRAFFIC -gt "20" ];then echo "流量超标"

fi

}

while true

do

main

done

说明:定义变量TRAFFIC,利用sar命令取发送流量,每秒取1次,这里就是取下图中标记的整数值,然后将变量和20进行比较,大于20就输出,否则无动作,通过while循环进行。

扩展:实际应用中,我们可以把输出“流量超标”这一动作换成 邮件通知管理员之类的,更有实用性。