ubuntu

如何排查Ubuntu LNMP网络故障

小樊
44
2025-12-06 09:04:46
栏目: 智能运维

Ubuntu LNMP网络故障排查流程

一 故障定位与基础检查

二 网络连通性与访问控制

三 组件与配置专项排查

四 快速排查命令清单

五 一键最小化自检脚本

#!/usr/bin/env bash
set -Eeuo pipefail

echo "=== [1/6] 服务状态 ==="
for svc in nginx php*-fpm mysql; do
  if systemctl is-active --quiet "$svc"; then
    echo "✔ $svc: running"
  else
    echo "✖ $svc: not running (systemctl status $svc)"
  fi
done

echo -e "\n=== [2/6] 关键端口监听 ==="
for p in 80 443 9000; do
  if ss -tulpen | grep -q ":$p "; then
    echo "✔ 端口 $p: 监听中"
  else
    echo "✖ 端口 $p: 未监听"
  fi
done

echo -e "\n=== [3/6] 本机访问 ==="
curl -fsI http://127.0.0.1/ | head -n1 || echo "✖ 127.0.0.1 访问失败"

echo -e "\n=== [4/6] 配置语法 ==="
nginx -t && echo "✔ Nginx 配置 OK" || echo "✖ Nginx 配置有误"

echo -e "\n=== [5/6] 日志与目录 ==="
for f in /var/log/nginx/error.log /var/log/php*-fpm.log /var/log/mysql/error.log; do
  if [ -r "$f" ]; then
    echo "✔ 可读: $f"
  else
    echo "✖ 不可读/不存在: $f"
  fi
done

echo -e "\n=== [6/6] 防火墙与安全组提示 ==="
if command -v ufw >/dev/null 2>&1; then
  ufw status verbose || echo "✖ 无法获取 UFW 状态"
else
  echo "ℹ UFW 未安装"
fi
echo "ℹ 如在外网访问异常,请同时检查云平台安全组/NACL 是否放行 80/443"

echo -e "\n建议:若本机能访问而外网不能,优先检查 云安全组/本机防火墙、Nginx 监听地址与 server_name、以及端口占用与监听方式一致性。"

0
看了该问题的人还看了