问题描述
在打开网站后台以及监控系统的时候,发现网站无法加载或非常慢,Shynet勉强加载出来页面,网站直接不显示内容。
尝试从客户端ping网站,发现直接超时。
ping fangjunyu.com
PING fangjunyu.com (111.231.22.116): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
...
登陆腾讯云控制台,发现服务器带宽非常高。
可能原因
1、异常流量(如 DDoS 攻击):
服务器可能被恶意攻击,导致带宽被耗尽。
攻击可能来自大量随机 IP,尝试请求你的服务器。
2、高并发访问:
如果网站或服务最近访问量激增(如营销活动、爬虫抓取等),带宽可能因正常访问流量达到上限。
3、后台进程消耗:
服务器上的某些后台任务(如定时更新、数据同步或大文件下载)可能占用了大量带宽。
4、带宽限制过低:
如果你的服务器带宽配置较低(如 1Mbps 或 10Mbps),即使正常访问也容易达到上限。
5、网络劫持或滥用:
某些恶意程序或未授权的用户可能在你的服务器上进行大量上传或下载操作。
问题定位
初步定位是备份文件下载导致的问题,当我下载备份文件后,网站就打不开了。
在定位该问题后,发现网页又可以重新打开,但是速度仍然比较慢。同时观察腾讯云控制器,发现公网带宽的流入流量突然正常的,但是流出流量还是很高。
当我的备份文件全部下载完成后,公网带宽的流入和流出流量又变高了。
因此,问题不在下载备份文件,而是可能存在其他问题。
检查网络使用情况
先通过iftop或nload命令,检查服务器上的当前网络使用情况,如果没有下载过,CentOS安装命令为:
// 确保已启用 EPEL 仓库
yum install epel-release -y
// 安装 iftop :
yum install iftop -y
// 安装 nload:
yum install nload -y
安装完成后,查看当前连接的实时情况:
iftop命令实时显示当前网络连接的带宽使用情况,按流量大小排序。
iftop -i eth0
-i eth0 指定网络接口(eth0 为常见的网卡名称)。
iftop命令解读:
1)箭头方向 (=> 或 <=):
=> 表示从你的服务器发送(TX)的流量。
<= 表示流向你的服务器接收(RX)的流量。
2)流量统计
35.9Kb 125Kb 557Kb
<=
35.9Kb 125Kb 536Kb
单位说明:Kb 表示每秒传输的千位(Kilobits per second, Kbps)。
每行 3 列(分别是实时、1 秒平均、15 秒平均速率):
35.9Kb:实时流量速率。
125Kb:1 秒内的平均流量速率。
557Kb:最近 15 秒内的平均流量速率。
3)汇总统计
最后部分是整体流量统计:
1、TX(发送):
cum:累积发送流量(380 KB)。
peak:发送流量的峰值速率(1.27 Mbps)。
rates:实时、1 秒、15 秒内的发送流量速率。
2、RX(接收):
cum:累积接收流量(330 KB)。
peak:接收流量的峰值速率(1.21 Mbps)。
rates:实时、1 秒、15 秒内的接收流量速率。
3、TOTAL(总流量):
累积:710 KB(发送 + 接收流量总和)。
峰值速率:2.48 Mbps(发送 + 接收中的峰值速率)。
实时速率:10.8Kb(当前瞬时的总流量)。
1 秒平均速率:14.4Kb。
15 秒平均速率:13.3Kb。
因为需要监控的是实时速率,关注的是第二个速率图。
看上去并没有过高的流量。
回到腾讯云的控制台发现流量已经恢复正常。
问题解决方法
因为未能从iftop命令中查找到非法或恶意流量,因此该问题待后续发现时,继续排查。
查找可疑IP或域名
如果查找到可疑的IP或域名,存在未经授权的流量,以下是处理方法的详细步骤:
1、查看访问日志:
检查是否存在大量异常请求:
grep "<可疑 IP>" /var/log/nginx/access.log
示例:分析请求的路径、时间频率,以及是否是恶意扫描或非法请求。
2、检查活动连接:
使用 ss 或 netstat 查看当前与服务器的连接:
ss -tuna | grep "<可疑 IP>"
判断是否有大量连接或长时间的占用。
暂时阻止可疑 IP
如果确认可疑 IP 涉及恶意流量,可以用以下方法阻止其访问:
1、使用 iptables
阻止特定 IP:
iptables -A INPUT -s <可疑 IP> -j DROP
如果需要永久生效,保存规则:
iptables-save > /etc/iptables/rules.v4
2、使用 firewalld
阻止特定 IP:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<可疑 IP>" reject'
刷新规则:
firewall-cmd –reload
查清可疑 IP 或域名的来源
方法
1、查询 IP 或域名归属:
使用 whois:
whois <可疑 IP>
检查是否属于合法服务提供商。
2、检查恶意名单:
查询 IP 是否在公共黑名单:
3、域名解析:
查看域名的解析 IP:
nslookup <域名>
解析出的 IP 是否可疑。