問題原因
可能是惡意程序問題,或者是部分IP惡意訪問導致,亦可能是服務遭到了CC攻擊。
處理辦法
首先需要確定是哪一張網卡的帶寬跑滿,可以通過sar –n DEV 1 5 命令來獲取網卡級別的流量圖,命令中1 5表示每一秒鐘取一次值,一共取5次。
命令執(zhí)行后會列出每個網卡這5次取值的平均數(shù)據(jù),根據(jù)實際情況來確定帶寬跑滿的網卡名稱,默認情況下eth0為內網網卡,eth1為外網網卡。
使用iptop工具排查
1.服務器內部安裝iftop流量監(jiān)控工具:
yum install iftop –y
2.服務器外網帶寬被占滿時,如果通過遠程無法登陸,可通過VNC遠程登錄到服務器內部,運行下面命令查看流量占用情況:
iftop -i eth1 -P
注:-P參數(shù)會將請求服務的端口顯示出來,也就是說是通過服務期哪個端口建立的連接,看內網流量執(zhí)行iftop -i eth0 –P命令。
如上面示例圖,通過分析發(fā)現(xiàn)最耗流量的是服務器上53139端口和115.205.150.235地址建立的連接,產生了大量的入網流量。執(zhí)行netstat命令反查53139端口對應進程。
netstat -tunlp |grep 53139
3.最終定位出來是服務器上vsftdp服務產生大量流量,這時可以通過停止服務或使用iptables服務來對指定地址進行處理,如屏蔽IP地址,限速,以保證服務器帶寬能夠正常使用。
使用nethogs進行排查
1.服務器內部安裝nethogs流量監(jiān)控工具:
yum install nethogs –y
2.通過nethogs工具來查看某一網卡上進程級流量信息,若未安裝可以通過yum、apt-get等方式安裝。
假定當前eth1網卡跑滿,則執(zhí)行命令nethogs eth1,在右邊的紅框中可以看到每個進程的網絡帶寬情況,左邊紅框顯示了進程對應的PID,在此可以確定到底是什么進程占用了系統(tǒng)的帶寬。
3.如果確定是惡意程序,可以通過 kill -TERM <PID>來終止程序。
如是Web服務程序,則可以使用iftop等工具來查詢具體IP來源,然后分析Web訪問日志是否為正常流量,日志分析也可以使用logwatch或awstats等工具進行分析,若確定是正常的流量,則可以考慮升級服務器的帶寬。
如果問題還沒有解決,請?zhí)峁┕芜M行處理。