一、什么是运行堵塞
运行堵塞是指服务器在运行过程中出现的卡顿、无法正常响应请求等情况。当服务器出现运行堵塞时,会对业务造成严重的影响。例如,网站可能无法访问,这会导致用户无法获取所需的信息,影响用户体验;业务也可能会中断,给企业带来经济损失。
服务器运行堵塞(或称服务器阻塞)指的是服务器在处理请求时,某些操作或进程由于各种原因导致无法及时完成,从而使得系统响应变慢,甚至完全无法响应。这种情况通常会导致系统性能下降、响应时间变长,严重时可能会导致服务中断或崩溃。
服务器运行堵塞的常见原因有很多。首先,CPU 过载是一个常见问题,服务器的 CPU 资源被大量占用,导致无法及时处理新的请求。这种情况通常发生在 CPU 密集型应用中,例如处理大量复杂计算或加密操作时。其次,内存不足也会引发堵塞。如果服务器的内存消耗过高,操作系统可能会进入交换(swap)模式,将内存数据写入硬盘,从而导致响应变慢。磁盘 IO 瓶颈也是常见原因之一,服务器的硬盘读写速度无法满足大量数据请求时,磁盘 IO 就会成为瓶颈,影响数据库查询、文件上传下载等操作。带宽瓶颈同样会导致服务器堵塞,网络带宽不足时,大量请求可能无法迅速传输,造成网络延迟和堵塞。高并发请求也可能超出服务器的处理能力,导致请求排队等待处理,大量的并发连接或请求可能会导致线程池、进程池、连接池等资源耗尽,进而导致请求堵塞。在多线程或多进程环境中,死锁可能会发生,多个线程或进程由于等待对方释放资源而互相阻塞,导致程序无法继续执行,数据库事务中的死锁也是常见的堵塞原因之一。某些线程因等待某些资源(如 IO 操作、数据库查询结果)而被阻塞,也会导致系统无法及时响应其他请求。数据库查询效率低同样会影响服务器性能,如果数据库查询没有经过优化,查询操作可能需要很长时间才能完成,尤其是在查询大量数据时,数据库可能成为性能瓶颈,导致服务器的其他请求也受到影响。应用程序设计问题也不容忽视,某些应用程序设计不当,比如没有进行有效的异步处理,可能会导致在等待某些任务完成时阻塞其他操作,从而影响整个服务器的响应能力。网络问题,如网络延迟、丢包、带宽限制等,也可能导致服务器堵塞,尤其是当服务器需要与外部系统(如远程数据库或 API)进行大量交互时。
服务器运行堵塞会带来一系列后果。响应时间变长是最明显的表现,用户的请求响应时间增加,导致网站或应用变得缓慢。如果堵塞严重,可能会导致服务中断,服务器无法响应新的请求,进而影响整个服务的可用性。系统崩溃也是可能的后果之一,如果堵塞没有得到及时解决,系统资源可能耗尽,导致服务器崩溃或重启。长时间的堵塞还可能导致数据丢失或错误,尤其是在事务性应用中。
为了防止和解决服务器运行堵塞问题,可以采取多种措施。优化服务器配置是一个重要方法,提高服务器硬件配置(增加 CPU、内存、存储等资源)以应对更高的负载,通过负载均衡将请求分配到多个服务器上,减少单台服务器的负担。使用缓存技术(如 Memcached、Redis 等)可以减少对数据库或其他后端系统的访问,从而减轻服务器的负担,避免数据库查询阻塞。优化数据库性能也很关键,对数据库查询进行优化,使用索引、分区等技术提高查询速度,避免因查询缓慢导致服务器堵塞,使用数据库连接池管理数据库连接,避免频繁创建和销毁连接造成性能下降。优化应用程序设计也必不可少,使用异步编程模型、队列系统等来处理耗时任务,避免长时间阻塞服务器,对应用程序进行性能优化,减少不必要的资源占用。负载均衡器(如 Nginx、HAProxy 等)可以将流量分配到多台服务器,避免单台服务器过载,配置健康检查机制,当某台服务器出现问题时,自动将流量转发到健康服务器。合理配置并发数和连接池,控制并发请求的数量,避免过高的并发导致服务器资源被占满,使用连接池来管理数据库连接、网络连接等资源,减少频繁的资源申请和释放。
总之,服务器运行堵塞是由于多种因素(如资源不足、高并发、数据库性能差等)导致服务器无法及时处理请求,进而影响系统性能和响应能力。为了避免堵塞,除了硬件资源的提升,还需要优化应用程序、数据库、网络配置等方面,使用监控工具和负载均衡等手段来确保系统的高效运行。
二、CC 攻击与运行堵塞
1. CC 攻击的定义与原理
CC 攻击是 DDOS 的一种,黑客利用代理服务器或肉鸡向目标网页发送大量请求,消耗服务器资源,致使 CPU 处理不过来请求,长期处于 100% 状态,造成端口堵塞,正常请求进不来。具体来说,CC 攻击算得上是应用层的 DDoS,其原理是模拟多个用户对一些资源消耗较大的页面不断发出请求,当服务器一直都有处理不完的大量数据请求时,服务器资源浪费过多,就会造成堵塞,而正常用户的访问也会被终止,网站陷入瘫痪状态。CC 攻击的前身是一个名为 Fattoy 攻击程序,后来被称为 CC 攻击是因为它是为了挑战黑洞而诞生的。
2. 判断是否为 CC 攻击的方法
可以通过以下方法判断是否遭受 CC 攻击:
- 命令行法:遭受 CC 攻击时,Web 服务器会出现 80 端口对外关闭的现象,在命令行下输入命令 netstat -an,“SYN_RECEIVED” 是 TCP 连接状态标志,表明无法建立握手应答处于等待状态。如果有很多这样的记录,且来自不同的代理 IP,就基本可以确定是攻击的特征。
- 批处理法:建立一个批处理文件,筛选出当前所有到 80 端口的连接。当感觉服务器异常时,双击运行该批处理文件,然后在打开的 log.log 文件中查看所有的连接。如果同一个 IP 有比较多的到服务器的连接,那就基本可以确定该 IP 正在对服务器进行 CC 攻击。
- 查看系统日志:Web 日志一般在 C:\WINDOWS\system32\LogFiles\HTTPERR 目录下,该目录下用类似 httperr1.log 的日志文件,这个文件就是记录 Web 访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否 Web 被 CC 攻击了。
3. CC 攻击的防御方法
CC 攻击的防御方法有很多,以下是一些常见的方法:
- 隐藏服务器 IP:可以有效防止攻击者直接针对服务器 IP 进行攻击。
- 屏蔽攻击 IP:通过查看日志分析 CC 攻击的源 IP,在 IIS 中设置屏蔽该 IP 对 Web 站点的访问,或者设置 “拒绝访问” 即 “黑名单”。
- 禁止代理访问:设置 “拒绝所有代理访问” 就可以很好地防止代理访问的攻击。
- 完善日志:养成保留完整日志的习惯,通过日志分析程序,能够尽快判断出异常访问,同时也能收集有用的信息。
- 取消域名绑定:一般 cc 攻击都是针对网站域名,在 IIS 上取消这个域名的绑定,让 CC 攻击失去目标。但缺点是取消或者更改域名对于别人的访问带来了不便,对于针对 IP 的 CC 攻击它是无效的。
- 使用 DDoS 高防 IP:高防 IP 是针对互联网服务器在遭受互联网恶意攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防 IP,将攻击流量引流到高防 IP,确保源站的稳定可靠。
- 更改 Web 端口:通常情况下 Web 服务器通过 80 端口对外提供服务,因此攻击者也以默认的 80 端口进行攻击,所以修改 Web 端口可以防御 CC 攻击。
- 使用网站安全卫士:网站安全卫士能够为用户免费提供了网站加速,智能高防 DNS,防 DDOS,预防 CC 攻击,防黑客和网站在线等服务。
三、DD 攻击与运行堵塞
1. DD 攻击的定义与分类
DDoS 即分布式拒绝服务攻击,是一种通过利用多台计算机或设备向目标服务器发起大量请求,从而耗尽服务器资源,使其无法正常处理合法请求的攻击方式。DDoS 攻击可以根据不同的标准进行分类。
- 根据攻击的协议栈分类,可分为网络层攻击、传输层攻击、应用层攻击以及混合型攻击。网络层攻击如 UDP 泛洪、ICMP 泛洪、IGMP 泛洪和放大攻击等,主要针对网络传输设备和服务器进行攻击,让整个网络瘫痪。传输层攻击常见的有 TCP Syn Flood,通过向目标发送大量的 TCP SYN 请求,使目标服务器不堪重负,无法响应正常请求。应用层攻击则包括 DNS 泛洪、正则表达式 DoS 攻击等方式,攻击服务器 / 应用程序,使其无法正常工作,导致服务不可用。混合型攻击则结合了多种层次的攻击手段。
- 根据攻击对象的分类,可分为针对网络资源的攻击和针对服务器 / 应用程序资源的攻击。针对网络资源的攻击主要是通过各种方式对网络传输设备和服务器进行攻击,占用网络带宽,导致网络拥塞。针对服务器 / 应用程序资源的攻击则是利用各种手段攻击服务器或应用程序,使其无法正常处理请求。
2. DD 攻击的现象与危害
DDos 攻击会带来多种现象和危害。现象方面,首先是带宽被大量占用,大量的攻击流量会占据网络带宽,使得正常请求难以通过。其次,服务器 CPU 被大量占用,攻击者发送的大量请求会使服务器的 CPU 资源被耗尽,无法处理正常业务。
危害主要体现在对业务和企业形象的影响上。对业务而言,DDos 攻击会导致服务中断,用户无法访问网站或使用应用程序,从而造成经济损失。例如电商平台在遭受 DDos 攻击时,用户无法下单购买商品,导致销售额下降。对于企业形象来说,服务中断会导致用户体验下降,用户投诉增多,影响企业的品牌形象和市场声誉。此外,DDos 攻击还可能导致数据泄露,攻击者在攻击过程中可能趁机窃取企业的核心数据。
3. DD 攻击的防御措施
防御 DDos 攻击可以采取以下措施:
- 提高网络带宽,增加服务器的网络带宽可以承受更多的攻击流量,但成本较高。同时,提升硬件配置,如提高 CPU、内存、硬盘、网卡、路由器、交换机等硬件设施的配置,选用知名度高、口碑好的产品,也能增强服务器的抗攻击能力。
- 使用流量清洗服务,专业的流量清洗设备可以识别和过滤攻击流量,只让正常流量通过,保护服务器不受攻击。
- 采用负载均衡技术,将请求分配到多个服务器上,减少单个服务器的负担。例如使用 Nginx、HAProxy 等负载均衡器,将流量均衡地分配到各个服务器上,避免单台服务器过载。
- 部署可以处理 DDoS 攻击的硬件,如防火墙、入侵检测系统等。许多下一代网络防火墙、Web 应用程序防火墙和负载均衡器可以防御协议和应用程序攻击。还可以部署专业的 DDoS 缓解设备,对攻击流量进行拦截和清洗。
- 扩大网络带宽,对于有资金实力的企业,可以扩展带宽以吸收容量攻击。但对于小型组织而言,可能难以承担这一成本。
- 使用 DDoS 缓解提供商,组织可以求助于专门响应 DDoS 攻击的大型提供商,通过云清理服务来处理攻击流量,在流量到达组织网络之前将其转移到缓解中心。
- 采用分布式集群防御,在每个节点服务器配置多个 IP 地址,并且每个节点能承受不低于 10G 的 DDoS 攻击。当一个节点受攻击无法提供服务时,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态。
四、运行堵塞的原因分析
除了 CC 和 DD 攻击外,还有很多其他原因可能导致服务器运行堵塞。
一、硬件故障
- 内存不足:如果服务器的内存消耗过高,操作系统可能会进入交换(swap)模式,将内存数据写入硬盘,从而导致响应变慢。例如,在处理大量数据或运行多个大型应用程序时,内存可能会迅速耗尽。
- 硬盘故障:硬盘出现损坏或者读写速度较慢,都有可能导致服务器卡顿。例如,硬盘的坏道可能会导致数据读取错误,从而影响服务器的正常运行。
- CPU 过载:服务器的 CPU 资源被大量占用,导致无法及时处理新的请求。这种情况通常发生在 CPU 密集型应用中,例如处理大量复杂计算或加密操作时。
- 网络带宽不足:网络带宽不足时,大量请求可能无法迅速传输,造成网络延迟和堵塞。例如,在高并发访问时,如果网络带宽不够,就会导致请求排队等待处理。
二、高并发访问当服务器同时收到大量请求时,可能导致服务器的处理能力不足,从而出现堵塞。这可能是由于突发事件、促销活动或流量峰值等造成的。例如,电商平台在双十一等促销活动期间,访问量会急剧增加,如果服务器的处理能力不够,就会出现堵塞。
三、软件问题
- 数据库查询效率低:如果数据库查询没有经过优化,查询操作可能需要很长时间才能完成,尤其是在查询大量数据时,数据库可能成为性能瓶颈,导致服务器的其他请求也受到影响。
- 错误的同步机制:不当的同步机制可能导致死锁或饥饿现象,从而引起进程堵塞。例如,不当的互斥锁使用或条件变量管理可能导致进程无法正确释放资源。
- 系统设计缺陷:服务器设计时未能充分考虑并发处理能力,或者在高并发场景下未能有效应对,也可能导致进程堵塞。
- 第三方库或框架问题:某些第三方库或框架可能存在设计缺陷或性能瓶颈,导致服务器在高负载下出现进程堵塞。
四、其他原因
- 网络问题:服务器所在网络环境的带宽有限,无法支持大量请求的传输。此外,网络故障、延迟等问题也可能导致服务器拥堵。例如,网络拥塞、丢包等情况会影响数据的传输速度,从而导致服务器堵塞。
- 安全攻击:恶意攻击者通过大量请求或滥用服务器资源来攻击服务器,导致服务器拥堵。除了 CC 和 DD 攻击外,还有其他类型的攻击,如 SQL 注入、跨站脚本攻击等,这些攻击也可能导致服务器堵塞。
- 资源调度不合理:PACS 服务器上运行的软件可能存在资源调度不合理的问题,例如某个进程占用过多的 CPU 或者内存资源,导致服务器卡顿。可以通过检查软件配置并进行优化来解决。
五、如何应对运行堵塞
运行堵塞是一个复杂的问题,需要根据不同的原因采取相应的解决方法。以下是一些应对运行堵塞的措施:
一、防范网络攻击
- 对于 CC 攻击,可以采取以下方法进行防御:
-
- 隐藏服务器 IP,有效防止攻击者直接针对服务器 IP 进行攻击。
-
- 屏蔽攻击 IP,通过查看日志分析 CC 攻击的源 IP,在 IIS 中设置屏蔽该 IP 对 Web 站点的访问,或者设置 “拒绝访问” 即 “黑名单”。
-
- 禁止代理访问,设置 “拒绝所有代理访问” 就可以很好地防止代理访问的攻击。
-
- 完善日志,养成保留完整日志的习惯,通过日志分析程序,能够尽快判断出异常访问,同时也能收集有用的信息。
-
- 取消域名绑定,一般 cc 攻击都是针对网站域名,在 IIS 上取消这个域名的绑定,让 CC 攻击失去目标。但缺点是取消或者更改域名对于别人的访问带来了不便,对于针对 IP 的 CC 攻击它是无效的。
-
- 使用 DDoS 高防 IP,高防 IP 是针对互联网服务器在遭受互联网恶意攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防 IP,将攻击流量引流到高防 IP,确保源站的稳定可靠。
-
- 更改 Web 端口,通常情况下 Web 服务器通过 80 端口对外提供服务,因此攻击者也以默认的 80 端口进行攻击,所以修改 Web 端口可以防御 CC 攻击。
-
- 使用网站安全卫士,网站安全卫士能够为用户免费提供了网站加速,智能高防 DNS,防 DDOS,预防 CC 攻击,防黑客和网站在线等服务。
- 对于 DDos 攻击,可以采取以下措施进行防御:
-
- 提高网络带宽,增加服务器的网络带宽可以承受更多的攻击流量,但成本较高。同时,提升硬件配置,如提高 CPU、内存、硬盘、网卡、路由器、交换机等硬件设施的配置,选用知名度高、口碑好的产品,也能增强服务器的抗攻击能力。
-
- 使用流量清洗服务,专业的流量清洗设备可以识别和过滤攻击流量,只让正常流量通过,保护服务器不受攻击。
-
- 采用负载均衡技术,将请求分配到多个服务器上,减少单个服务器的负担。例如使用 Nginx、HAProxy 等负载均衡器,将流量均衡地分配到各个服务器上,避免单台服务器过载。
-
- 部署可以处理 DDoS 攻击的硬件,如防火墙、入侵检测系统等。许多下一代网络防火墙、Web 应用程序防火墙和负载均衡器可以防御协议和应用程序攻击。还可以部署专业的 DDoS 缓解设备,对攻击流量进行拦截和清洗。
-
- 扩大网络带宽,对于有资金实力的企业,可以扩展带宽以吸收容量攻击。但对于小型组织而言,可能难以承担这一成本。
-
- 使用 DDoS 缓解提供商,组织可以求助于专门响应 DDoS 攻击的大型提供商,通过云清理服务来处理攻击流量,在流量到达组织网络之前将其转移到缓解中心。
-
- 采用分布式集群防御,在每个节点服务器配置多个 IP 地址,并且每个节点能承受不低于 10G 的 DDoS 攻击。当一个节点受攻击无法提供服务时,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态。
二、维护服务器硬件
- 定期对服务器进行除尘,尘土是服务器最大的杀手。
- 扩充服务器的内存和硬盘,以满足资源不断扩展的需求。当资源不断扩展的时候,就需要扩充内存和硬盘。加内存时应该选择与原内存同厂商、同型号的内存条为宜。以免由于手头没有专用的 ECC 内存就加了根 DDR 的,结果导致系统出错无法重启。
- 定期更换、维护和卸载设备,能延长服务器寿命,保护服务器数据的安全性。硬盘,不间断电源等要及时更换。定期的维护,当然能延长服务器寿命。如果万一由于软硬件的故障,外部故障(断电)或者(人为)不小心误删了数据库,丢失了很重要的数据文件,要记得找专业公司进行恢复。拆服务器时里面倒不是大问题,关键是在开机箱时一定要注意,不少的服务器机箱暗藏玄机,一定要事先仔细阅读说明书后再下手;防尘的问题就不用说了吧,很多莫名其妙的故障都是尘土 “惹的祸”,一般来说每个月都应定期的拆机打扫一次。
三、优化数据库查询
- 检查错误日志,首先,我们需要查看 MySQL 的错误日志,了解具体的错误信息。错误日志通常位于 MySQL 的数据目录下,可以通过以下命令查看:$ tail -f /var/log/mysql/error.log。
- 优化查询语句,负载状态运行堵塞通常是由于某些查询语句导致的。我们可以通过优化查询语句来提升数据库性能,减少负载。
- 增加索引,对于经常被查询的字段,可以考虑增加索引。合适的索引可以加快查询速度,提升数据库性能。
- 检查并优化配置,检查 MySQL 的配置文件,确保配置参数合理。可以根据系统的实际情况进行调整,比如调整缓冲区大小、最大连接数等参数。
- 重启 MySQL 服务,如果以上方法都无法解决问题,可以尝试重启 MySQL 服务,清空缓存,重新加载配置文件。
四、其他措施
- 合理配置并发数和连接池,控制并发请求的数量,避免过高的并发导致服务器资源被占满,使用连接池来管理数据库连接、网络连接等资源,减少频繁的资源申请和释放。
- 使用 CDN,CDN 是一种常见的优化网站性能的技术,它可以将网站内容缓存到离用户更近的节点上,从而降低网络延迟,提高网站的访问速度。
- 代码优化,对于网站或应用来说,优化代码也是一个重要的解决方法。可以通过减少 HTTP 请求、压缩文件、使用缓存等方式来提高网站的响应速度和负载能力。
- 定期清理无用文件,对于服务器上的一些无用文件,如过时的软件、临时文件等,需要及时清理,以释放服务器空间和提高服务器的性能。
- 监控和分析,通过监控和分析服务器的运行状态和流量情况,可以及时发现和
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。