问题原因
可能是恶意程序问题,或者是部分IP恶意访问导致,亦可能是服务遭到了CC攻击。
处理办法
首先需要确定是哪一张网卡的带宽跑满,可以通过sar –n DEV 1 5 命令来获取网卡级别的流量图,命令中1 5表示每一秒钟取一次值,一共取5次。
命令执行后会列出每个网卡这5次取值的平均数据,根据实际情况来确定带宽跑满的网卡名称,默认情况下eth0为内网网卡,eth1为外网网卡。
使用iptop工具排查
1.服务器内部安装iftop流量监控工具:
yum install iftop –y
2.服务器外网带宽被占满时,如果通过远程无法登陆,可通过VNC远程登录到服务器内部,运行下面命令查看流量占用情况:
iftop -i eth1 -P
注:-P参数会将请求服务的端口显示出来,也就是说是通过服务期哪个端口建立的连接,看内网流量执行iftop -i eth0 –P命令。
如上面示例图,通过分析发现最耗流量的是服务器上53139端口和115.205.150.235地址建立的连接,产生了大量的入网流量。执行netstat命令反查53139端口对应进程。
netstat -tunlp |grep 53139
3.最终定位出来是服务器上vsftdp服务产生大量流量,这时可以通过停止服务或使用iptables服务来对指定地址进行处理,如屏蔽IP地址,限速,以保证服务器带宽能够正常使用。
使用nethogs进行排查
1.服务器内部安装nethogs流量监控工具:
yum install nethogs –y
2.通过nethogs工具来查看某一网卡上进程级流量信息,若未安装可以通过yum、apt-get等方式安装。
假定当前eth1网卡跑满,则执行命令nethogs eth1,在右边的红框中可以看到每个进程的网络带宽情况,左边红框显示了进程对应的PID,在此可以确定到底是什么进程占用了系统的带宽。
3.如果确定是恶意程序,可以通过 kill -TERM <PID>来终止程序。
如是Web服务程序,则可以使用iftop等工具来查询具体IP来源,然后分析Web访问日志是否为正常流量,日志分析也可以使用logwatch或awstats等工具进行分析,若确定是正常的流量,则可以考虑升级服务器的带宽。
如果问题还没有解决,请提供工单进行处理。