建站帮助

诚信合作, 高质专业!

Linux服务器带宽跑满、磁盘读取写入BPS爆表怎么办?

2026-05-27 20:55:15 浏览 我要评论

在网站采用独立服务器之后,难免会碰到服务器运维的一些问题,比如服务器的环境如何设置、服务器被流量攻击了怎么办、访问量并发过大硬件扛不住如何优化,今天CMSYOU在这里与大家分享最近一次的服务器运维防攻击实战经验:Linux服务器带宽跑满、磁盘读取写入BPS爆表的情况下如何设置防火墙拦截做到攻击防御。

一般来说,WIN服务器由于有mstsc远程连接,可以像本地操作系统一样的图形面板,于是操作起来相对熟悉轻松。Linux则需要依照命令行,不过好在可以用图形控制面板,比如宝塔面板、1Panel、小皮面板。采用Linux命令行安装上控制面板后,就如同CMS网站管理后台一样,可以抛开命令行来操作了。常规情况下,控制面板就足够使用了,方便、快捷。如果碰到标题中的情况:Linux服务器带宽跑满、磁盘读取写入BPS爆表怎么办?则需要结合主机空间商的主机基础监控的监控数据查看CPU使用率、公网带宽、磁盘读取写入BPS、磁盘读取写入IOPS、同时连接数等数据来做判断,有时需要结合命令行来进行一些操作。

今天碰到的情况:阿里云的一台ECS服务器从昨晚开始服务器带宽跑满、磁盘读取写入BPS爆表,造成网站访问奇慢、管理后台不能进入、宝塔面板也不能登录,并且上午还在持续。上午CMSYOU在收到“云服务器ECS-(ECS)IP维度公网流出平均速率-发生告警通知”后,开始排查。先尝试重启服务器,看是不是偶尔的运行卡住的情况。实际情况:重启服务器后很快就又进入跑满的情况,查看网站访问日志(宝塔面板的日志文件目录:/www/wwwlogs/),发现网站的访问日志文件比平时的大很多,说明访问上应该是有流量攻击。具体开始以下操作,具体抗住这一波攻击。

1、开启swap交换分区:

# 创建swap文件夹

sudo mkdir -v /var/cache/swap

# 进入swap文件夹

cd /var/cache/swap

# 创建swap文件,1K * 4M,预计4G大小的虚拟内存文件

sudo dd if=/dev/zero of=swapfile bs=1K count=4M

# 将新建的文件转换为swap文件

sudo mkswap swapfile

# 给swapfile文件权限

sudo chmod 600 swapfile

# 启用swap分区

sudo swapon swapfile

# 设置交换分区开机自启

echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

完成设置后,编辑/etc/sysctl.conf文件,修改vm.swappiness值为10~30,相当于当物理内存超过90%~60%就开始使用swap分区,执行sysctl -p 加载修改后配置。

经过这一设置,磁盘读取写入BPS降下来了:

服务器磁盘读取写入BPS得到缓解

服务器磁盘读取写入BPS得到缓解

2、统计高频访问的IP,设置防火墙拦截。

2.1、采用iftop检测访问IP流量情况。

需要先安装好iftop:

Cnetos安装:

yum install iftop -y

Ubuntu安装:

apt -y install iftop

查看当前进出IP:

iftop -i eth0 -n

进入后按t切换查看、按L参数显示进度条、按数字1、2、3排序列、按B查看最近2s、10s、40s的统计。

采用iftop监测IP访问流量情况

采用iftop监测IP访问流量情况

详细参数:

P 切换暂停/继续显示

h 在交互界面/状态输出界面之间切换

b 切换是否显示平均流量图形条

B 切换显示2s10s和40s内的平均流量

T 切换是否显示每个连接的总流量

j/k 向上或向下滚动屏幕显示当前的连接信息

f 编辑筛选码

l 打开iftop输出过滤功能 ,如输入要显示的IP按回车键后屏幕就只显示与这个IP相关的流量信息

L 切换显示流量刻度范围,刻度不同,流量图形条也会不同

q 退出iftop

2.2、采用统计访问日志文件的方式显示出高频IP。

命令行:

tail -100000 /www/wwwlogs/cmsyou.com-access_log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10

这样可以统计出请求访问查看cmsyou.com网站的频率最高的IP,然后通过IP查看地区、类型,用来判断是否具备CC攻击特征。通常类型为“数据中心”、“未知”、“海外”等特性,则大概率是攻击IP。

2.3、得到可疑攻击的IP后,添加到防火墙拦截名单。

方法1:采用宝塔面板自带的防火墙工具添加IP拦截,位置:安全》系统防火墙》IP规则,点击“添加IP规则”按钮,填写IP、策略选择“禁止”,保存提交。

宝塔面板防火墙添加IP规则

宝塔面板防火墙添加IP规则

方法2:Linux命令行添加到防火墙拦截名单:

# 解封单个 IP

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'

# 解封 IP 段

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" reject'

# 重载配置生效

firewall-cmd --reload

持续观察,锁定请求频率高具备CC攻击特征的IP,然后添加到防火墙拦截。一段时间后服务器带宽使用率下来了:

服务器带宽使用率得到控制

服务器带宽使用率得到控制

最后,感谢大家一直来对CMSYOU的关注!CMSYOU一直还在专注CMS企业网站定制、功能二开定制,欢迎找我们定制,同时碰到CMS程序运维、服务器运维方面的问题,欢迎探讨!

我要收藏
点个赞吧

相关阅读

本月热门

精选推荐

在线客服

扫一扫,关注我们

扫一扫,关注我们