网站打不开、服务器掉线怎么办?Linux 日志排查新手也能看懂

服务器出现异常重启、短时间断网、服务报错时,很多人第一反应是“是不是服务器坏了”或者“是不是线路问题”。但在真正排查之前,不能只看感觉,必须先看日志。
Linux 系统日志就像服务器的运行记录本:什么时候重启过、有没有内核报错、磁盘有没有异常、网卡有没有掉线、SSH 有没有被暴力尝试、服务有没有崩溃,很多线索都能从日志里找到。
对于使用香港服务器、美国服务器、日本服务器等海外物理服务器的用户来说,日志排查尤其重要。因为跨境访问链路更长,业务还可能涉及建站、数据库、API、游戏后端、跨境商城、下载分发等场景,只有先判断问题发生在系统层、服务层、硬件层还是网络层,后续处理才不会走弯路。
一、先搞清楚:Linux 日志主要看哪里?
不同 Linux 发行版的日志路径略有区别,但常见入口基本集中在下面几个位置。
| 排查方向 | 常用日志/命令 | 主要作用 |
|---|---|---|
| 系统整体日志 | journalctl |
查看 systemd 管理的系统日志 |
| 启动与重启记录 | last reboot、who -b、uptime |
判断服务器是否重启、何时重启 |
| 内核日志 | dmesg、journalctl -k |
查看内核、硬件、驱动、网卡、磁盘报错 |
| 登录日志 | /var/log/auth.log 或 /var/log/secure |
查看 SSH 登录、暴力破解、sudo 操作 |
| 系统日志 | /var/log/syslog 或 /var/log/messages |
查看系统服务、网络、计划任务等信息 |
| Web 服务日志 | Nginx/Apache access/error log | 查看网站访问、502、504、权限报错 |
| 数据库日志 | MySQL/MariaDB error log | 查看数据库崩溃、慢查询、连接异常 |
Ubuntu、Debian 通常重点看:
journalctl
/var/log/syslog
/var/log/auth.log
/var/log/kern.log
CentOS、Rocky、AlmaLinux 通常重点看:
journalctl
/var/log/messages
/var/log/secure
如果系统使用 systemd,大多数问题都可以先从 journalctl 入手。
二、服务器异常重启,先看这几个入口
异常重启最常见的原因包括:电源中断、系统内核崩溃、OOM 内存溢出、硬件异常、磁盘故障、内核升级后自动重启、人工重启、机房维护等。
第一步,先确认服务器是否真的重启过。
uptime
这个命令可以看到服务器已经连续运行了多久。如果运行时间只有几分钟或几小时,而你没有主动重启,就说明确实发生过重启。
再看重启历史:
last reboot
查看系统启动时间:
who -b
如果要看最近一次启动前后的日志,可以使用:
journalctl -b
查看上一次启动周期的日志:
journalctl -b -1
这条命令非常关键。如果服务器已经重启,当前日志只能看到重启后的状态,而 journalctl -b -1 可以帮助你回看“重启前发生了什么”。
三、判断是不是 OOM 内存不足导致重启或服务崩溃
很多服务器不是整机故障,而是内存被业务吃满,系统触发 OOM Killer,强制杀掉 MySQL、PHP、Java、Redis、Docker 容器等进程。
查看是否有 OOM 记录:
journalctl -k | grep -i "out of memory"
journalctl -k | grep -i "killed process"
dmesg -T | grep -i "oom"
如果看到类似:
Out of memory: Killed process 1234 (mysqld)
说明系统曾经因为内存不足杀掉过进程。
对于轻量企业站、博客、小型后台,如果使用类似 A5IDC 香港三网服务器配置:
CPU:E3-1245V3(4核8线程)
内存:16GB
硬盘:240G SSD
带宽:30M CN2/CMIN2/CU
IP:1个
适合:企业官网、博客、小型 API、后台管理系统
这类配置运行 WordPress、ZBlog、企业官网一般没问题,但如果同时部署 MySQL、Redis、多个 PHP 站点、日志采集、Docker 应用,并且没有限制内存,仍然可能出现内存打满。
如果业务是跨境商城、数据库较重、访问量较高,建议升级到更稳的配置,例如:
CPU:E5-2620V2 ×2(12核24线程)
内存:32GB
硬盘:480G SSD
带宽:30M CN2/CMIN2/CU
IP:3个
适合:企业官网集群、小型商城、后台系统、轻量 API 服务
解决思路不是只看“要不要加内存”,还要结合进程占用分析:
free -h
top
ps aux --sort=-%mem | head
如果 MySQL 长期占用过高,可以优化 buffer pool、连接数和慢查询;如果 PHP-FPM 占用高,可以限制 pm.max_children;如果是 Java 或 Node 服务,则要限制最大堆内存和进程数量。
四、判断是不是内核、硬件或磁盘异常
如果服务器出现无规律重启、卡死、I/O 异常、文件系统只读,需要重点看内核日志。
dmesg -T
journalctl -k
常见关键字包括:
error
fail
timeout
reset
I/O error
EXT4-fs error
nvme
ata
mce
watchdog
kernel panic
可以这样过滤:
dmesg -T | egrep -i "error|fail|timeout|reset|nvme|ata|mce|watchdog|panic"
如果出现 I/O error、EXT4-fs error、nvme timeout,要优先检查硬盘健康度和文件系统状态。
NVMe 硬盘可以使用:
smartctl -a /dev/nvme0n1
重点看:
Percentage Used
Media and Data Integrity Errors
Critical Warning
Temperature
Unsafe Shutdowns
如果业务是数据库、日志写入、图片站、缓存服务,建议优先选择 NVMe SSD 或企业级 U.2 硬盘配置。例如:
CPU:Gold 6138
内存:128GB
硬盘:2 × 960G U.2 SSD
带宽:25M CN2 + 100M BGP
适合:数据库、企业系统、虚拟化、较高 I/O 业务
如果只是普通网站,SATA SSD 通常够用;但如果是数据库密集型业务,硬盘 I/O 和延迟会直接影响网站响应速度。
五、服务器断网,日志要和网络命令一起看
断网不能只看 Ping。Ping 不通可能是服务器网络异常,也可能是防火墙、运营商链路、回程路由、DDoS 清洗、机房策略、系统网卡服务异常。
先查看网卡状态:
ip addr
ip route
查看网卡是否有掉线、重启、链路变化:
journalctl -k | grep -i eth
journalctl -k | grep -i link
dmesg -T | grep -i "link is"
如果使用 NetworkManager:
journalctl -u NetworkManager
如果使用 systemd-networkd:
journalctl -u systemd-networkd
常见异常包括:
link down
link up
carrier lost
network unreachable
martian source
renamed network interface
如果日志显示网卡频繁 link down/link up,可能是系统网卡驱动、虚拟化层、交换机端口或上游网络问题。此时建议同时提供日志时间点给服务商排查。
对于香港服务器,断网排查还要结合线路类型。比如 A5IDC 香港服务器常见线路包括 CN2、CMIN2、CU、BGP 国际带宽等。国内访问异常时,需要分别测试电信、联通、移动三网,而不是只在本地电脑 Ping 一次。
建议基础排查命令:
ping 服务器IP
mtr 服务器IP
traceroute 服务器IP
curl -I 网站域名
如果是网站断开但服务器可 Ping,问题多半在 Nginx、PHP、数据库或防火墙;如果服务器 IP 都不通,再结合 MTR 和日志判断是否是网络侧问题。
六、网站报错:不要只看浏览器提示
网站出现 403、404、500、502、504 时,浏览器页面只能告诉你“访问失败”,不能告诉你真正原因。要看 Web 服务日志。
Nginx 常见日志路径:
/var/log/nginx/access.log
/var/log/nginx/error.log
Apache 常见日志路径:
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/httpd/access_log
/var/log/httpd/error_log
实时查看 Nginx 错误:
tail -f /var/log/nginx/error.log
如果是 502,重点看 PHP-FPM:
systemctl status php-fpm
journalctl -u php-fpm
Ubuntu 多版本 PHP 可能是:
systemctl status php8.2-fpm
journalctl -u php8.2-fpm
如果是 504,通常要看后端响应是否超时,例如 PHP、Node、Java、MySQL 是否响应慢。
常见方向:
| 报错 | 常见原因 | 排查入口 |
|---|---|---|
| 403 | 权限不足、目录禁止访问、防火墙拦截 | Nginx/Apache error log |
| 404 | 路径错误、伪静态未配置、文件不存在 | access log、站点配置 |
| 500 | 程序异常、PHP 报错、权限问题 | error log、PHP log |
| 502 | PHP-FPM/后端服务异常 | Nginx error log、php-fpm 状态 |
| 504 | 后端处理超时、数据库慢、接口阻塞 | Nginx error log、应用日志 |
七、SSH 登录异常,也要看系统日志
如果服务器负载突然升高、SSH 登录慢、账户被锁定,可能是被暴力破解尝试。Linux 登录日志可以快速判断风险。
Ubuntu/Debian:
grep "Failed password" /var/log/auth.log
grep "Accepted password" /var/log/auth.log
CentOS:
grep "Failed password" /var/log/secure
grep "Accepted password" /var/log/secure
查看最近登录:
last
lastb
如果失败登录非常多,建议立即处理:
1. 禁止 root 直接 SSH 登录
2. 修改 SSH 默认端口
3. 使用强密码或 SSH Key
4. 配置防火墙白名单
5. 安装 fail2ban 自动封禁异常 IP
6. 后台系统、数据库、面板不要暴露到公网
如果服务器是对外业务节点,例如跨境商城、外贸官网、API 服务,建议管理端口只放行固定办公 IP,不要让 SSH、数据库、Redis、面板端口直接暴露。
八、日志排查不要只看“某一条”,要看时间线
服务器问题最怕只截一条日志就下结论。正确方式是围绕异常时间点前后 5 到 30 分钟做时间线排查。
例如客户反馈:
晚上 20:15 网站打不开,20:20 自动恢复
可以这样看系统日志:
journalctl --since "2026-06-09 20:00:00" --until "2026-06-09 20:30:00"
看内核日志:
journalctl -k --since "2026-06-09 20:00:00" --until "2026-06-09 20:30:00"
看 Nginx 错误日志:
grep "20:1" /var/log/nginx/error.log
看登录行为:
grep "Jun 9 20:" /var/log/auth.log
排查时建议按这个顺序:
先确认是否重启
再看内核是否异常
再看网络是否掉线
再看 Web 服务是否报错
再看数据库和应用日志
最后结合带宽、CPU、内存、磁盘 I/O 判断资源瓶颈
这样排查出来的问题更准确,也更方便服务商协助定位。
九、不同业务场景,日志关注点不一样
如果是企业官网、博客、小型展示站,重点关注 Nginx、PHP-FPM、MySQL、磁盘空间和登录安全。
如果是跨境商城,重点关注数据库连接数、PHP 慢请求、支付回调、库存接口、海外访问延迟。
如果是游戏后端,重点关注进程崩溃、UDP/TCP 连接、CPU 抖动、内存占用、网络丢包。
如果是下载站或图片站,重点关注带宽峰值、磁盘 I/O、连接数、Nginx 访问日志和 499/502/504。
如果是 AI/GPU 推理服务,除了系统日志,还要看 GPU 驱动、CUDA、显存占用和推理框架日志。
对应服务器配置也应有区别。轻量业务可从 16GB 内存、SSD、30M 优化线路起步;数据库和后台系统建议 32GB 至 128GB 内存、NVMe 或 U.2 SSD;高并发下载和分发业务则更看重 100M、1G 或更高带宽能力。
十、A5IDC 建议的基础排查模板
当服务器出现异常时,建议先整理下面这些信息,再提交给技术支持,定位效率会更高。
1. 服务器 IP:
2. 操作系统版本:
3. 异常时间点:
4. 异常现象:重启 / 断网 / 网站报错 / 登录异常 / 数据库异常
5. 是否可 Ping:
6. 是否可 SSH:
7. 最近是否改过配置:
8. journalctl 相关日志:
9. dmesg 相关日志:
10. Web 或数据库错误日志:
常用命令可以整理为:
uptime
last reboot
journalctl -b -1
journalctl -k
dmesg -T
free -h
df -h
top
ip addr
ip route
systemctl --failed
如果是网站问题,再补充:
systemctl status nginx
systemctl status php-fpm
systemctl status mysql
tail -n 100 /var/log/nginx/error.log
结语
Linux 系统日志并不是只有运维工程师才能看懂。对于服务器用户来说,只要掌握几个基础入口,就能初步判断异常重启、断网、报错到底发生在系统层、网络层、硬件层还是应用层。
真正高效的排查方式,不是看到网站打不开就马上重装系统,也不是一遇到 Ping 不通就认定线路故障,而是先围绕异常时间点看日志,再结合 CPU、内存、磁盘、带宽和服务状态综合判断。
A5IDC 建议用户在选择海外服务器时,不仅关注 CPU、内存、硬盘和带宽配置,也要重视日志分析、监控告警、备份策略和安全加固。服务器稳定运行,靠的不只是硬件配置,更靠日常可观察、可追踪、可定位的运维体系。