心灵咖啡

 找回密码
 注册加入
查看: 2762|回复: 1
收起左侧

[环境架设] Linux 带宽异常跑满的解决方案

[复制链接]
发表于 2017-8-31 02:18:04 | 显示全部楼层 |阅读模式

问题原因


可能是恶意程序问题,或者是部分 IP 恶意访问导致,亦可能是服务遭到了CC攻击

处理办法

使用 iftop 工具排查
使用 nethogs 进行排查
首先需要确定是哪一张网卡的带宽跑满,可以通过sar -n DEV 1 5 命令来获取网卡级别的流量图,命令中 1 5 表示每一秒钟取 1 次值,一共取 5 次。

命令执行后会列出每个网卡这 5 次取值的平均数据,根据实际情况来确定带宽跑满的网卡名称,默认情况下 eth0 为内网网卡,eth1 为外网网卡。
1.png


使用 iftop 工具排查

1、服务器内部安装 iftop 流量监控工具:
  1. yum install iftop -y
复制代码
2.jpg

2、.服务器外网带宽被占满时,如果通过远程无法登陆,可通过阿里云终端管理进入到服务器内部,运行下面命令查看流量占用情况:
  1. iftop -i eth1 -P
复制代码
注:-P 参数会将请求服务的端口显示出来,也就是说是通过服务器哪个端口建立的连接,看内网流量执行 iftop -i eth0 -P 命令。
3.jpg
如上面示例图,通过分析发现最耗流量的是服务器上 53139 端口和 115.205.150.235 地址建立的连接,产生了大量入网流量。执行 netstat 命令反查 53139 端口对应进程。
  1. netstat -tunlp |grep 53139
复制代码
4.jpg

3、最终定位出来是服务器上 vsftpd 服务产生大量流量,这时可以通过停止服务或使用iptables服务来对指定地址进行处理,如屏蔽 IP 地址,限速,以保证服务器带宽能够正常使用。

使用 nethogs 进行排查

1、服务器内部安装 nethogs 流量监控工具:
  1. yum install nethogs -y
复制代码
2、通过 nethogs 工具来查看某一网卡上进程级流量信息,若未安装可以通过 yum、apt-get 等方式安装。

假定当前 eth1 网卡跑满,则执行命令 nethogs eth1,在右边的红框中可以看到每个进程的网络带宽情况,左边红框显示了进程对应的 PID,在此可以确定到底是什么进程占用了系统的带宽。
5.png


3、如果确定是恶意程序,可以通过 kill -TERM 来终止程序。

如是 Web 服务程序,则可以使用 iftop 等工具来查询具体 IP 来源,然后分析 Web 访问日志是否为正常流量,日志分析也可以使用 logwatch 或 awstats 等工具进行分析,若确定是正常的流量,则可以考虑升级服务器的带宽。

使用Web应用防火墙防御CC攻击

产品页面:https://www.aliyun.com/product/waf



6.png



——论坛程序问题,请给 qq124627513(微信同步)留言。(系统默认签名,点击修改
 楼主| 发表于 2017-8-31 02:46:07 | 显示全部楼层
  1. 语法: iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]  
  2.    -h                  显示本帮助(Help)信息  
  3.    -n                  不进行主机名(hostName)查找  
  4.    -N                  不将端口号(port Number)转换成对应的服务 to services  
  5.    -p                  混合(Promiscuous)模式(显示网络相关的其他主机信息)  
  6.    -b                  不显示流量图形条(Bar)  
  7.    -B                  以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的  
  8.    -i interface        监控的网卡接口(interface)  
  9.    -f filter code      包统计时,使用过滤码;默认:无,只统计IP包  
  10.    -F net/mask         显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24  
  11.    -G net6/mask6       显示特定IPv6网段的进出流量(Flow)  
  12.    -l                  显示并统计IPv6本地(Local)链接的流量(默认:关)  
  13.    -P                  显示端口(Port)  
  14.    -m limit            设置显示界面上侧的带宽刻度(liMit)  
  15.    -c config file      指定配置(Config)文件  
  16.    -t                  使用不带窗口菜单的文本(text)接口  
  17.   
  18.    排序:  
  19.    -o 2s                Sort by first column (2s traffic average)  
  20.    -o 10s               Sort by second column (10s traffic average) [default]  
  21.    -o 40s               Sort by third column (40s traffic average)  
  22.    -o source            Sort by source address  
  23.    -o destination       Sort by destination address  
  24.   
  25.    The following options are only available in combination with -t  
  26.    -s num              print one single text output afer num seconds, then quit  
  27.    -L num              number of lines to print  
复制代码
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
前面IP是本机的(Source),后面IP远程主机的(Dest);
中间的<= =>这两个左右箭头,表示的是流量的方向。
右侧的三列数值:
第一列是:在此次刷新之前2s或10s或40s的平均流量(按B设置秒数);
第二列是:在此次刷新之前10秒钟的总流量的一半;
第三列是:在此次刷新之前40秒钟的总流量的1/5;
TX:发送(Transmit)流量;RX:接收(Receive)流量;TOTAL:总流量;
cum:运行iftop到目前时间的总和(Cum);peak:流量峰(Peak)值;
rates:分别表示过去 2s 10s 40s 的平均流量;

界面显示时的交互命令:
  1. 主机显示:                                
  2. n - DNS主机解析的开关                     
  3. s - 源(Source)主机显示的开关               
  4. d - 目标(Dest)主机显示的开关                 
  5. t - 循环切换行显示模式   
  6. 端口显示:                                
  7. N - toggle service resolution               
  8. S - toggle show source port                  
  9. D - toggle show destination port            
  10. p - toggle port display                       
  11. 排序:  
  12. 1/2/3 - sort by 1st/2nd/3rd column  
  13. < - sort by source name  
  14. > - sort by dest name  
  15. o - freeze current order  
  16. 普通:                           
  17. P - 暂停(Pause)显示  
  18. h - 本帮助(Help)的显示或隐藏  
  19. b - 图形条(Bar)的显示或隐藏  
  20. B - cycle bar graph average         
  21. T - toggle cumulative line totals   
  22. j/k - scroll display                 
  23. f - edit filter code                 
  24. l - set screen filter               
  25. L - lin/log scales                  
  26. ! - shell command                    
  27. q - quit         
复制代码
——论坛程序问题,请给 qq124627513(微信同步)留言。(系统默认签名,点击修改
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

广告
广告位
广告位
广告位
关闭

站长推荐上一条 /1 下一条

QQ|联系我们|手机版|小黑屋|Archiver|心灵咖啡 ( 粤ICP备16121829号-1 )

GMT+8, 2024-4-20 18:20 , Processed in 0.072420 second(s), 27 queries .

Powered by Discuz! and 心灵文学

Copyright © 2001-2021, Tencent Cloud.


本站文章为原创会员所有,未经许可禁止去版权转载,但欢迎分享本站文章链接!另,若有抄袭侵权,联系即删禁。
快速回复 返回顶部 返回列表