日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux前10ip,检查网口流量与前10名流量大IP

發布時間:2025/3/12 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux前10ip,检查网口流量与前10名流量大IP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此腳本包含的功能有:1、實時監控任意網卡的流量

2、統計10秒內平均流量

3、統計每個端口在10秒內的平均流量,基于客戶端和服務端端口統計。可以看出哪些端口占流量比較大,對于web服務器,一般是80端口。其它端口受到***時,也有可能其它端口流量比較大。所以此功能可以幫助我們端口流量是否正常。

4、統計在10s內占用帶寬最大的前10個ip。此項功能可以幫助我們來查出是否有惡意占用帶寬的ip。

5、統計連接狀態。此項功能可以讓我們看出哪些連接狀態比較大。如果SYN-RECV狀態比較多的話,有可以受到半連接***。如果ESTABLISED非常大,但通過日志發現沒有那么多請求,或者通過tcpdump發現大量ip只建立連接不請求數據的話,可能是受到了全連接***,這時候如果你使用的是nginx服務器,可以在配置文件增加listen 80 deferred來防止。

6、統計各端口連接狀態。當可能受到***時,此項功能可以幫助我們發現是哪個端口受到***。

7、統計端口為80且狀態為ESTAB連接數最多的前10個IP。此項功能可以幫助我們來找出創建連接過多的Ip,進而屏蔽。

8、統計端口為80且狀態為SYN-RECV連接數最多的前10個IP。當受到半連接***時,此項功能可以幫助我們找到惡意ip

用到的網絡分析工具:1、tcpdump:此腳本用tcpdump來統計基于ip或基于端口的流量。

2、ss: 此腳本用ss命令來統計連接狀態,實際使用發現ss比netstat高效得多。

3、/proc/net/dev,用來統計指定網卡的流量。#!/bin/bash

#顯示菜單(單選)

display_menu(){

local?soft=$1

local?prompt="which?${soft}?you'd?select:?"

eval?local?arr=(\${${soft}_arr[@]})

while?true

do

echo?-e?"####################?${soft}?setting?####################\n\n"

for?((i=1;i<=${#arr[@]};i++?));?do?echo?-e?"$i)?${arr[$i-1]}";?done

echo

read?-p?"${prompt}"?$soft

eval?local?select=\$$soft

if?[?"$select"?==?""?]?||?[?"${arr[$soft-1]}"?==?""??];then

prompt="input?errors,please?input?a?number:?"

else

eval?$soft=${arr[$soft-1]}

eval?echo?"your?selection:?\$$soft"

break

fi

done

}

#把帶寬bit單位轉換為人類可讀單位

bit_to_human_readable(){

#input?bit?value

local?trafficValue=$1

if?[[?${trafficValue%.*}?-gt?922?]];then

#conv?to?Kb

trafficValue=`awk?-v?value=$trafficValue?'BEGIN{printf?"%0.1f",value/1024}'`

if?[[?${trafficValue%.*}?-gt?922?]];then

#conv?to?Mb

trafficValue=`awk?-v?value=$trafficValue?'BEGIN{printf?"%0.1f",value/1024}'`

echo?"${trafficValue}Mb"

else

echo?"${trafficValue}Kb"

fi

else

echo?"${trafficValue}b"

fi

}

#判斷包管理工具

check_package_manager(){

local?manager=$1

local?systemPackage=''

if?cat?/etc/issue?|?grep?-q?-E?-i?"ubuntu|debian";then

systemPackage='apt'

elif?cat?/etc/issue?|?grep?-q?-E?-i?"centos|red?hat|redhat";then

systemPackage='yum'

elif?cat?/proc/version?|?grep?-q?-E?-i?"ubuntu|debian";then

systemPackage='apt'

elif?cat?/proc/version?|?grep?-q?-E?-i?"centos|red?hat|redhat";then

systemPackage='yum'

else

echo?"unkonw"

fi

if?[?"$manager"?==?"$systemPackage"?];then

return?0

else

return?1

fi

}

#實時流量

realTimeTraffic(){

local?eth=""

local?nic_arr=(`ifconfig?|?grep?-E?-o?"^[a-z0-9]+"?|?grep?-v?"lo"?|?uniq`)

local?nicLen=${#nic_arr[@]}

if?[[?$nicLen?-eq?0?]];?then

echo?"sorry,I?can?not?detect?any?network?device,please?report?this?issue?to?author."

exit?1

elif?[[?$nicLen?-eq?1?]];?then

eth=$nic_arr

else

display_menu?nic

eth=$nic

fi

local?clear=true

local?eth_in_peak=0

local?eth_out_peak=0

local?eth_in=0

local?eth_out=0

while?true;do

#移動光標到0:0位置

printf?"\033[0;0H"

#清屏并打印Now?Peak

[[?$clear?==?true?]]?&&?printf?"\033[2J"?&&?echo?"$eth--------Now--------Peak-----------"

traffic_be=(`awk?-v?eth=$eth?-F'[:?]+'?'{if?($0?~eth){print?$3,$11}}'?/proc/net/dev`)

sleep?2

traffic_af=(`awk?-v?eth=$eth?-F'[:?]+'?'{if?($0?~eth){print?$3,$11}}'?/proc/net/dev`)

#計算速率

eth_in=$((?(${traffic_af[0]}-${traffic_be[0]})*8/2?))

eth_out=$((?(${traffic_af[1]}-${traffic_be[1]})*8/2?))

#計算流量峰值

[[?$eth_in?-gt?$eth_in_peak?]]?&&?eth_in_peak=$eth_in

[[?$eth_out?-gt?$eth_out_peak?]]?&&?eth_out_peak=$eth_out

#移動光標到2:1

printf?"\033[2;1H"

#清除當前行

printf?"\033[K"

printf?"%-20s?%-20s\n"?"Receive:??$(bit_to_human_readable?$eth_in)"?"$(bit_to_human_readable?$eth_in_peak)"

#清除當前行

printf?"\033[K"

printf?"%-20s?%-20s\n"?"Transmit:?$(bit_to_human_readable?$eth_out)"?"$(bit_to_human_readable?$eth_out_peak)"

[[?$clear?==?true?]]?&&?clear=false

done

}

#流量和連接概覽

trafficAndConnectionOverview(){

if?!?which?tcpdump?>?/dev/null;then

echo?"tcpdump?not?found,going?to?install?it."

if?check_package_manager?apt;then

apt-get?-y?install?tcpdump

elif?check_package_manager?yum;then

yum?-y?install?tcpdump

fi

fi

local?reg=""

local?eth=""

local?nic_arr=(`ifconfig?|?grep?-E?-o?"^[a-z0-9]+"?|?grep?-v?"lo"?|?uniq`)

local?nicLen=${#nic_arr[@]}

if?[[?$nicLen?-eq?0?]];?then

echo?"sorry,I?can?not?detect?any?network?device,please?report?this?issue?to?author."

exit?1

elif?[[?$nicLen?-eq?1?]];?then

eth=$nic_arr

else

display_menu?nic

eth=$nic

fi

echo?"please?wait?for?10s?to?generate?network?data..."

echo

#當前流量值

local?traffic_be=(`awk?-v?eth=$eth?-F'[:?]+'?'{if?($0?~eth){print?$3,$11}}'?/proc/net/dev`)

#tcpdump監聽網絡

tcpdump?-v?-i?$eth?-tnn?>?/tmp/tcpdump_temp?2>&1?&

sleep?10

clear

kill?`ps?aux?|?grep?tcpdump?|?grep?-v?grep?|?awk?'{print?$2}'`

#處理tcpdump文件

awk?'/^IP/{print;getline;print}'?/tmp/tcpdump_temp?>?/tmp/tcpdump_temp2

awk?'{len=$NF;sub(/\)/,"",len);getline;print?$0,len}'?/tmp/tcpdump_temp2?>?/tmp/tcpdump

#10s后流量值

local?traffic_af=(`awk?-v?eth=$eth?-F'[:?]+'?'{if?($0?~eth){print?$3,$11}}'?/proc/net/dev`)

#打印10s平均速率

local?eth_in=$((?(${traffic_af[0]}-${traffic_be[0]})*8/10?))

local?eth_out=$((?(${traffic_af[1]}-${traffic_be[1]})*8/10?))

echo?-e?"\033[32mnetwork?device?$eth?average?traffic?in?10s:?\033[0m"

echo?"$eth?Receive:?$(bit_to_human_readable?$eth_in)/s"

echo?"$eth?Transmit:?$(bit_to_human_readable?$eth_out)/s"

echo

#統計每個端口在10s內的平均流量

regTcpdump=$(ifconfig?|?grep?-A?1?$eth?|?awk?-F'[:?]+'?'$0~/inet?addr:/{printf?$4"|"}'?|?sed?-e?'s/|$//'?-e?'s/^/(/'?-e?'s/$/)\\\\\.[0-9]+:/')

echo?-e?"\033[32maverage?traffic?in?10s?base?on?server?port:?\033[0m"

awk?-F'[?.:]+'?-v?regTcpdump=$regTcpdump?'{if?($0?~?regTcpdump){line="clients?>?"$8"."$9"."$10"."$11":"$12}else{line=$2"."$3"."$4"."$5":"$6"?>?clients"};sum[line]+=$NF*8/10}END{for?(line?in?sum){printf?"%s?%d\n",line,sum[line]}}'?/tmp/tcpdump?|?\

sort?-k?4?-nr?|?head?-n?10?|?while?read?a?b?c?d;do

echo?"$a?$b?$c?$(bit_to_human_readable?$d)/s"

done

echo

echo?-e?"\033[32maverage?traffic?in?10s?base?on?client?port:?\033[0m"

awk?-F'[?.:]+'?-v?regTcpdump=$regTcpdump?'{if?($0?~?regTcpdump){line=$2"."$3"."$4"."$5":"$6"?>?server"}else{line="server?>?"$8"."$9"."$10"."$11":"$12};sum[line]+=$NF*8/10}END{for?(line?in?sum){printf?"%s?%d\n",line,sum[line]}}'?/tmp/tcpdump?|?\

sort?-k?4?-nr?|?head?-n?10?|?while?read?a?b?c?d;do

echo?"$a?$b?$c?$(bit_to_human_readable?$d)/s"

done

echo

#統計在10s內占用帶寬最大的前10個ip

echo?-e?"\033[32mtop?10?ip?average?traffic?in?10s?:?\033[0m"

awk?-F'[?.:]+'?-v?regTcpdump=$regTcpdump?'{if?($0?~?regTcpdump){line=$2"."$3"."$4"."$5"?>?"$8"."$9"."$10"."$11":"$12}else{line=$2"."$3"."$4"."$5":"$6"?>?"$8"."$9"."$10"."$11};sum[line]+=$NF*8/10}END{for?(line?in?sum){printf?"%s?%d\n",line,sum[line]}}'?/tmp/tcpdump?|?\

sort?-k?4?-nr?|?head?-n?10?|?while?read?a?b?c?d;do

echo?"$a?$b?$c?$(bit_to_human_readable?$d)/s"

done

echo

#統計連接狀態

regSS=$(ifconfig?|?grep?-A?1?$eth?|?awk?-F'[:?]+'?'$0~/inet?addr:/{printf?$4"|"}'?|?sed?-e?'s/|$//')

ss?-an?|?grep?-v?-E?"LISTEN|UNCONN"?|?grep?-E?"$regSS"?>?/tmp/ss

echo?-e?"\033[32mconnection?state?count:?\033[0m"

awk?'NR>1{sum[$(NF-4)]+=1}END{for?(state?in?sum){print?state,sum[state]}}'?/tmp/ss?|?sort?-k?2?-nr

echo

#統計各端口連接狀態

echo?-e?"\033[32mconnection?state?count?by?port:?\033[0m"

awk?'NR>1{sum[$(NF-4),$(NF-1)]+=1}END{for?(key?in?sum){split(key,subkey,SUBSEP);print?subkey[1],subkey[2],sum[subkey[1],subkey[2]]}}'?/tmp/ss?|?sort?-k?3?-nr?|?head?-n?10

echo

#統計端口為80且狀態為ESTAB連接數最多的前10個IP

echo?-e?"\033[32mtop?10?ip?ESTAB?state?count?at?port?80:?\033[0m"

cat?/tmp/ss?|?grep?ESTAB?|?awk?-F'[:?]+'?'{sum[$(NF-2)]+=1}END{for?(ip?in?sum){print?ip,sum[ip]}}'?|?sort?-k?2?-nr?|?head?-n?10

echo

#統計端口為80且狀態為SYN-RECV連接數最多的前10個IP

echo?-e?"\033[32mtop?10?ip?SYN-RECV?state?count?at?port?80:?\033[0m"

cat?/tmp/ss?|?grep?-E?"$regSS"?|?grep?SYN-RECV?|?awk?-F'[:?]+'?'{sum[$(NF-2)]+=1}END{for?(ip?in?sum){print?ip,sum[ip]}}'?|?sort?-k?2?-nr?|?head?-n?10

}

main(){

while?true;?do

echo?-e?"1)?real?time?traffic.\n2)?traffic?and?connection?overview.\n"

read?-p?"please?input?your?select(ie?1):?"?select

case??$select?in

1)?realTimeTraffic;break;;

2)?trafficAndConnectionOverview;break;;

*)?echo?"input?error,please?input?a?number.";;

esac

done

}

main

總結

以上是生活随笔為你收集整理的linux前10ip,检查网口流量与前10名流量大IP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本a级片免费 | 国产精品美女久久久久 | 中文字幕在线免费播放 | 国产又粗又大又黄 | 日韩欧美一区二区三区免费观看 | 亚洲插 | 99999视频| 中文字幕二区 | 综合一区二区三区 | 欧美日韩在线播放三区四区 | 色婷婷综合久久久久中文 | 黑人巨大精品一区二区在线 | 中国丰满老妇xxxxx交性 | 少妇精品一区二区 | 黄色网址在线免费观看 | 国模丫头1000人体 | 亚洲啪av永久无码精品放毛片 | 懂色av蜜臀av粉嫩av分 | 亚洲 另类 春色 国产 | 亚洲GV成人无码久久精品 | 偷拍欧美亚洲 | 午夜啪视频 | 一区二区三区四区五区六区 | 青草视频免费看 | 久久精品小视频 | 亚洲视频一区在线播放 | 亚洲第一福利网站 | 中国爆后菊女人的视频 | 美女黄视频在线观看 | 国产精品久久久久久无人区 | 超碰这里只有精品 | 亚洲综合日韩精品欧美综合区 | 欧美有码视频 | 影音先锋男人站 | 成人影视网址 | 精品爱爱 | 五月色丁香 | 国产精品久久久久毛片软件 | 91手机在线视频 | 欧美性做爰大片免费 | 精品国产乱码久久久久久郑州公司 | 嫩草影院一区二区 | 国产欧美日韩视频在线观看 | 澳门超碰| 中文字幕第七页 | 67194少妇在线观看 | 在线观看1区 | 欧美h在线观看 | 欧美成人精品在线视频 | 中文字幕1 | 欧美成人影音 | av小说免费在线观看 | 中文亚洲av片不卡在线观看 | 两性午夜免费视频 | 国产夜色精品一区二区av | 浓精h攵女乱爱av | 亚洲激情视频网站 | 日本理论片午伦夜理片在线观看 | 人人爽人人爽人人爽 | 午夜888 | 日韩精品一区二区三区国语自制 | 久久久久午夜 | 日本青草视频 | 99精品视频在线播放免费 | 国产精品久久毛片av大全日韩 | 国产黄色网址在线观看 | 日韩成人一区二区三区 | 亚洲综合五月天婷婷丁香 | 国产成人无码性教育视频 | 国产三级中文字幕 | 久久国产99 | 久久伊人影院 | 日韩高清成人 | 国产黄频在线观看 | 精品久久福利 | 久久精品爱 | 国产在线天堂 | 日韩福利视频 | 在线看你懂| 日韩在线精品强乱中文字幕 | 壮汉被书生c到合不拢腿 | 亚洲生活片 | 亚洲成人黄色av | 欧美成人三级在线视频 | 免费看裸体视频网站 | 91极品美女| 男人爆操女人 | 国产113页 | 91精品国产乱码久久久张津瑜 | www.-级毛片线天内射视视 | 日日操操| a极毛片| 亚洲男人天堂视频 | 成年人在线视频观看 | 黄色网页在线 | 日韩精品毛片 | 午夜嘿嘿嘿 | 奶水旺盛的少妇在线播放 | 久久久88 |