网站打不开被攻击_防御与恢复
网站经常打不开(间歇性打不开/时好时坏/完全打不开)是网站运维最紧急的问题,原因覆盖全链路:域名(解析/DNS/过期)、服务器(宕机/资源耗尽/带宽跑满/被攻击)、程序(报错/数据库故障/代码bug)、网络(防火墙/CDN/本地网络)、备案(被注销)、证书(过期)。本文详细讲解网站打不开的排查思路(从用户访问到服务器处理的全链路逐层排查:域名解析→网络连通→服务器→程序→数据库→资源→安全)、各类打不开的具体原因与解决(500/404/403/502/504/超时/数据库错误/域名过期/备案注销/被攻击/防火墙/超流量)、紧急处理流程(快速恢复网站访问),帮助站长在网站打不开时快速定位问题、恢复访问。
各类打不开原因与解决。域名层问题:1.域名过期(症状:访问提示无法访问/解析失败(网站打不开),原因:域名到期没续费(域名被注册商停止解析/删除),解决:登录域名商(阿里云/腾讯云/西部数码)→域名管理→看状态(过期/等待删除)→续费(过期后30天内可续费(赎回期),超过进入删除期(更贵赎回,或已被抢注)),提醒:设置自动续费+到期提醒(邮件/短信),不要等打不开才发现);2.DNS解析问题(症状:打不开/间歇性打不开/部分地区打不开,原因:解析记录错(A记录IP不对)、解析没生效(新解析,全球DNS同步几分钟-24小时)、DNS缓存(本地/运营商缓存旧IP)、DNS被污染/劫持(解析到错误IP(访问到钓鱼站/打不开)),解决:检查解析(域名商→解析设置,A记录指向正确IP(服务器IP)、ping域名(解析到正确IP?))、等生效(新解析等几分钟-24小时,清缓存(ipconfig /flushdns清DNS缓存、换浏览器/设备测))、换DNS(本地DNS(8.8.8.8/114.114.114.114/223.5.5.5,本地网络设置改DNS),运营商DNS(有问题换公共DNS))、被污染/劫持(换DNS/解析到正确的,排查(访问结果异常));3.DNS被劫持(症状:输入域名跳到别的网站/打不开,原因:DNS劫持(域名商账号被盗(解析被改)、DNS服务器被攻击、本地DNS被劫持(路由器/运营商)),解决:检查解析(域名商→解析记录,看有没有异常记录(被改到陌生IP))、改密码(域名商账号强密码+2FA(防被盗))、换DNS(本地DNS换公共DNS、检查路由器DNS设置)、监控(解析监控(定期检查解析记录)))。服务器层问题:1.服务器宕机(症状:网站完全打不开(ping IP不通/telnet端口不通),原因:服务器故障(硬件/系统崩溃/云服务器异常)、被攻击(DDoS打挂)、资源耗尽(CPU/内存/带宽跑满)、关机/欠费(云服务器停机),解决:云服务器控制台(看状态(运行中?)→重启(重启服务器,恢复)、监控(CPU/内存/带宽/磁盘,看资源情况)、联系服务商(硬件故障/欠费/被攻击,联系云服务商处理)、备份恢复(服务器数据(如果服务器挂了恢复,从备份重建)));2.资源耗尽(症状:网站慢/打不开/间歇性,原因:CPU 100%(程序死循环/被攻击/高并发,占用CPU)、内存满(程序内存溢出/并发多,内存耗尽,OOM杀进程)、带宽跑满(流量大/被攻击/大文件下载,带宽占满)、磁盘满(日志/数据/备份占满磁盘,网站写不了/打不开),解决:看监控(云服务器监控:CPU/内存/带宽/磁盘,定位哪个满)、CPU高(看进程(top,哪个进程占CPU),程序死循环(修复代码)、被攻击(WAF/CDN)、高并发(升级配置/优化))、内存满(看进程(top/ps,内存占用),内存溢出(优化代码/重启服务)、并发多(升级配置/优化))、带宽满(看流量(监控,哪个IP/请求占流量),被攻击(DDoS,高防)、大流量(升级带宽/CDN))、磁盘满(看磁盘(df -h),日志(清理/轮转)、数据(清理/扩容)、备份(异地/清理)));3.服务崩溃(症状:Nginx/Apache/PHP/MySQL服务停止(网站500/502/连接失败),原因:服务崩溃(进程挂了)、配置错误(改配置重启失败)、资源问题(内存/进程数)、MySQL崩溃(数据库宕机),解决:看服务状态(systemctl status nginx/php-fpm/mysql)、重启服务(systemctl restart nginx/php-fpm/mysql)、看日志(服务错误日志(nginx error.log/php-fpm log/mysql error.log),定位崩溃原因)、配置检查(改过的配置(nginx -t检查语法),改错恢复)、数据库修复(MySQL崩溃(看日志(磁盘满/表损坏),修复(repair/备份恢复)))。
程序/安全/其他问题与紧急处理。程序层问题:1.500错误(症状:Internal Server Error/500,原因:程序报错(PHP错误(代码bug/配置错/内存溢出)、文件权限(程序文件权限不对)、伪静态规则错(rewrite错误)、.htaccess错误、依赖缺失(扩展/库没装)),解决:看错误日志(PHP error_log(Fatal error/警告,定位)、nginx error.log(500对应错误)、Apache error.log)、开错误显示(临时display_errors=On(开发环境/临时排查),定位报错行)、文件权限(程序文件权限(644/755,属主正确))、伪静态(rewrite规则(Nginx/Apache,宝塔伪静态))、扩展(缺失扩展(gd/mbstring/curl,安装))、配置(php.ini/nginx配置(改错恢复)));2.404错误(症状:Not Found/404,原因:URL不存在(页面/文章删除)、伪静态没配(动态URL正常,静态URL 404)、伪静态规则错(rewrite不对)、目录/文件不存在(路径错)、被删/被改(内容删除),解决:看URL(访问的URL对不对(拼写/路径)、内容存在吗(后台看,文章/页面存在)、伪静态(伪静态配置(宝塔:网站→伪静态→选CMS规则,Nginx/Apache rewrite配置)、规则对不对(测试静态URL,动态URL正常=伪静态问题)、404页面(自定义404页(体验+SEO),找不到的URL友好提示)));3.数据库错误(症状:数据库连接失败/查询错误(打不开/报错),原因:数据库宕机(MySQL服务停止)、账号密码错(配置改了/数据库账号问题)、连接数满(并发多,连接池耗尽)、表损坏(数据表损坏,查询报错)、数据库文件满(磁盘满,写不了)、被攻击(数据库被删/被黑),解决:看数据库服务(systemctl status mysql,重启)、看数据库日志(mysql error.log,定位)、连接配置(数据库账号密码(config.php,确认对))、连接数(并发(优化/调大max_connections))、表损坏(repair table 表名,或备份恢复)、磁盘(清理磁盘)、被黑(数据库被删(备份恢复,防黑加固)));4.502/504错误(症状:Bad Gateway/504 Gateway Timeout,原因:502(Nginx和PHP-FPM连接失败:PHP-FPM没启动/崩溃/进程满、配置错(fastcgi_pass地址错))、504(PHP执行超时(脚本慢/卡住,超过nginx fastcgi_read_timeout)、数据库慢查询、程序死循环),解决:看PHP-FPM(systemctl status php-fpm,重启)、看PHP-FPM日志(php-fpm log,定位)、超时(脚本慢(优化代码/调大fastcgi_read_timeout)、数据库慢(优化SQL)、死循环(修复))、配置(fastcgi_pass(php-fpm socket/端口,配置对)));5.403权限错误(症状:Forbidden/403,原因:文件权限(目录/文件权限不对(Nginx用户无权限读))、目录浏览禁用(没索引文件(index.php不存在))、防火墙/WAF拦截(403)、IP被禁(服务器/防火墙封IP),解决:文件权限(文件权限(644,目录755,属主nginx/www用户)、索引文件(目录有index.php/index.html,没有配默认文档)、防火墙(WAF拦截(访问被拦,放行/调整规则)、IP被封(防火墙/安全组,解封)))。安全层问题:1.DDoS攻击(症状:网站突然打不开/极慢(带宽跑满/CPU满),原因:DDoS(分布式拒绝服务:流量攻击(SYN/UDP/HTTP Flood),打满带宽/资源,服务器无法响应),解决:CDN高防(接入CDN(高防CDN/云高防,清洗流量,隐藏源IP)、防火墙(WAF/防火墙(拦截攻击流量))、联系服务商(云服务商DDoS防护(黑洞/高防),升级防护)、临时(高防IP/切换线路,恢复访问)、长效(隐藏源IP(不用IP直连,CDN代理)、监控(流量监控,发现攻击及时)));2.CC攻击(症状:网站慢/打不开(CPU/连接数高),原因:CC攻击(应用层攻击:大量请求(高频访问/爬虫/代理IP),耗尽CPU/连接),解决:WAF(Web应用防火墙(拦截CC/高频请求,宝塔防火墙/云WAF)、限速(IP限速(单位时间请求数限制)、连接限制(并发连接限制))、验证码(异常访问验证码(滑块/图形)、封IP(攻击IP封禁(防火墙/WAF))、CDN(CDN缓存(静态资源缓存,减轻源站压力)));3.被挂马/篡改(症状:首页被改/跳转/挂链接/打不开,原因:网站被黑(漏洞入侵(注入/上传/弱密码),植入木马/篡改),解决:立即(关站(暂停访问,防扩散)→备份(日志/文件,证据))、查杀(扫描(找木马文件/代码:时间异常的PHP文件、eval/exec/system等危险函数、外链代码,清理)、修复(漏洞修复(改密码/更新程序/补漏洞)、恢复(从干净备份恢复(备份恢复,清掉木马))、加强(安全加固(强密码/更新/防火墙/权限))、预防(定期备份/更新/监控/扫描));4.防火墙拦截(症状:打不开(特定IP/地区/全部),原因:防火墙(云安全组(80/443端口没放行)、服务器防火墙(iptables/firewalld封IP/端口)、WAF(规则拦截)、CDN(CDN配置/封禁),解决:安全组(云控制台→安全组→入方向规则(放行80/443/22端口))、防火墙(iptables/firewalld(放行端口/解封IP))、WAF(WAF规则(误拦截(调整规则/白名单)))、CDN(CDN配置(回源/封禁,检查)))。备案/证书问题:1.备案被注销(症状:打不开(提示未备案/被拦截),原因:备案被注销(接入商变动、信息不符、网站内容违规、主动注销),解决:查备案(工信部备案查询(ICP备案查询,看状态))、重新备案(服务器商备案系统重新备案(提交资料,审核7-20天)、临时(备案期间用海外空间(免备案,临时过渡)))、避免(备案合规(信息真实/内容合规/接入商一致(换服务器要接入变更)));2.SSL证书过期(症状:浏览器提示不安全/无法访问,原因:证书过期(Let's Encrypt免费证书90天,没自动续期)、证书配置错(证书/密钥不匹配),解决:更新证书(宝塔一键续期(自动续期配置)、Let's Encrypt续期(certbot renew))、配置(证书配置(证书文件/密钥,配置对))、付费证书(按证书有效期(1年),到期前更新))。紧急处理流程(网站打不开快速恢复):1.先看范围(自己打不开还是大家都打不开(换设备/网络测));2.域名(ping域名/nslookup(解析正常吗,域名过期/解析错));3.服务器(云控制台看(运行中?CPU/内存/带宽/磁盘监控,服务器宕机/资源满));4.服务(Nginx/PHP/MySQL服务(systemctl status,重启));5.日志(错误日志(nginx error.log/PHP error.log/mysql error.log,定位错误));6.恢复(根据定位(续费/重启/修配置/清磁盘/查杀/升级),恢复访问);7.通知(恢复后通知(如果是重大故障/长时间,通知用户(公告/说明)))。
企业真实体验:「网站打不开,排查发现是磁盘满了(日志占满),清理日志+加日志轮转就好了,磁盘满会写不了数据打不开,要定期看磁盘」「数据库宕机网站打不开,重启MySQL就好了,查了是磁盘满导致MySQL崩溃,清了磁盘+定时清理,稳定了」。
操作提示:网站打不开排查命令手册——1.判断范围(自己打不开:换设备(手机/其他电脑)访问(别人能打开=本地问题:DNS缓存(ipconfig /flushdns)、浏览器缓存(清缓存/换浏览器)、本地网络(断网/路由器,重启)、hosts文件(被改(C:WindowsSystem32driversetchosts,看有没有被加域名));都打不开:继续);2.域名排查(ping 域名(看解析到IP,超时=解析失败/域名过期)、nslookup 域名(DNS解析结果,正常返回IP)、域名商控制台(域名状态(正常/过期)、解析记录(A记录指向服务器IP))、在线DNS查询(站长工具/爱站,看全球解析));3.网络排查(ping 服务器IP(通不通,不通=服务器宕机/防火墙)、telnet 服务器IP 80(端口通不通,通=服务在,不通=防火墙/服务没启动)、traceroute 服务器IP(路由追踪,定位网络断点));4.服务器排查(云控制台(状态(运行中/已停止)、监控(CPU/内存/带宽/磁盘,看哪个满)、重启(服务器重启,恢复))、SSH登录(top(CPU/内存占用,哪个进程高)、df -h(磁盘,满了吗)、free -m(内存)、ps aux(进程)));5.服务排查(systemctl status nginx(Nginx状态)、systemctl status php-fpm(PHP)、systemctl status mysql(MySQL)、systemctl restart nginx(重启服务));6.日志排查(nginx日志(/var/log/nginx/error.log,错误原因)、PHP日志(php.ini error_log路径,PHP错误)、MySQL日志(/var/log/mysql/error.log,数据库错误)、程序日志(CMS日志(WordPress debug.log/PbootCMS日志),tail -f 日志 实时看));7.恢复(根据定位处理(续费/重启/修配置/清磁盘/查杀/升级/放行端口),恢复后验证(访问正常,多测几次));8.预防(监控(可用性监控(监控宝/UptimeRobot/自建,打不开告警)、资源监控(云监控)、域名/证书到期提醒(自动续费/提醒))、备份(定期备份+异地)、安全(防火墙/WAF/更新/强密码)、日志轮转(磁盘管理),预防做好了,打不开少+及时发现)。常见错误码速查——500(服务器错误:PHP报错/权限/伪静态,看PHP日志);404(Not Found:URL不存在/伪静态没配/内容删除,配伪静态/自定义404);403(Forbidden:权限/目录浏览/WAF拦截,改权限/放行);502(Bad Gateway:PHP-FPM问题,重启php-fpm/看配置);504(Gateway Timeout:脚本超时,优化代码/调大超时);301(跳转(正常:换域名/HTTPS);401(未授权:登录/权限);429(请求过多:限速,稍后再试);数据库错误(连接失败/表损坏,重启MySQL/修复);Service Unavailable(503:服务不可用,服务器过载/维护,重启/扩容)。网站打不开紧急恢复流程——1.判断(自己还是全部(换设备测));2.域名(ping/nslookup(域名解析));3.服务器(云控制台(状态/资源/重启));4.服务(systemctl status 服务(重启));5.日志(错误日志(定位));6.处理(续费/重启/修配置/清磁盘/查杀/升级);7.验证(访问正常,监控);8.通知(重大故障通知用户);9.记录(故障原因+处理,复盘(预防同类))。

更新时间:2026-08-26 18:24:46