你是不是遇到过这种情况:
👉 这时候大多数人会:
重启服务 → 不行
关防火墙 → 还是不行
开始怀疑人生
👉 本质问题是:
❗你没有“排错路径”,只能靠猜
记住这一条:
访问失败 = 链路上某一层断了
客户端 → 网络 → 服务器 → 端口 → 服务
👉 对应5个检查点:
层级 | 检查内容 |
|---|---|
① 网络 | 能不能 ping |
② 机器 | IP对不对 |
③ 端口 | 有没有监听 |
④ 服务 | 有没有启动 |
⑤ 防火墙 | 有没有拦 |
👉 接下来我们用一个真实案例走一遍👇
ping 192.168.2.159

👉 注释
如果 ping 不通,说明网络层就断了
排查:
ip a

👉 注释:
确保IP和你访问的一致
ss -lntp | grep 80

👉 说明:
❌ 服务没启动 或 启动失败
systemctl status nginx

👉 继续查日志:
journalctl -u nginx -xe

👉 继续往下👇
firewall-cmd --list-all

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

curl http://localhost

👉 判断逻辑:
结果 | 说明 |
|---|---|
curl通,外部不通 | 防火墙/网络问题 |
curl都不通 | 服务问题 |
访问失败
↓
ping通? → 否 → 网络问题
↓
端口监听? → 否 → 服务没启动
↓
服务正常? → 否 → 查日志
↓
防火墙开放? → 否 → 开端口
↓
本机curl通? → 否 → 服务配置问题
很多人:
会100个命令 ❌ 但不会解决1个问题 ❌
而真正的能力是:
看到问题 → 有路径 → 一步步排除
👉 这篇文章你掌握的不是:
而是:
🔥 一整套“通用排错思维”
如果你觉得这篇有用,可以试着:
👉 自己搭一个 nginx 👉 故意关掉服务 👉 按这套流程走一遍
你会发现:
❗理解会提升一个层级