上一篇 下一篇 分享链接 返回 返回顶部

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

发布人:Minchunlin 发布时间:2026-06-09 09:04 阅读量:375

服务器出现异常重启、短时间断网、服务报错时,很多人第一反应是“是不是服务器坏了”或者“是不是线路问题”。但在真正排查之前,不能只看感觉,必须先看日志。

Linux 系统日志就像服务器的运行记录本:什么时候重启过、有没有内核报错、磁盘有没有异常、网卡有没有掉线、SSH 有没有被暴力尝试、服务有没有崩溃,很多线索都能从日志里找到。

对于使用香港服务器、美国服务器、日本服务器等海外物理服务器的用户来说,日志排查尤其重要。因为跨境访问链路更长,业务还可能涉及建站、数据库、API、游戏后端、跨境商城、下载分发等场景,只有先判断问题发生在系统层、服务层、硬件层还是网络层,后续处理才不会走弯路。

一、先搞清楚:Linux 日志主要看哪里?

不同 Linux 发行版的日志路径略有区别,但常见入口基本集中在下面几个位置。

排查方向 常用日志/命令 主要作用
系统整体日志 journalctl 查看 systemd 管理的系统日志
启动与重启记录 last rebootwho -buptime 判断服务器是否重启、何时重启
内核日志 dmesgjournalctl -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 errorEXT4-fs errornvme 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、内存、硬盘和带宽配置,也要重视日志分析、监控告警、备份策略和安全加固。服务器稳定运行,靠的不只是硬件配置,更靠日常可观察、可追踪、可定位的运维体系。

目录结构
全文