Linux Troubleshooting
L1 日常排错篇 适用场景:服务连不上、启动报错、明显卡顿。L1 不追求命令全,只保留日常最常用、能马上定方向的几组操作;指标解释和深入定位放到 L2。 1. 服务是不是还活着 使用场景:服务启动后访问不了、发布后怀疑没起来、进程异常退出、systemd 服务状态不对。 BASHsystemctl status <service> --no-pager journalctl -u <service> -n 100 --no-pager journalctl -u <service> -f pgrep -af <name> 先看服务状态是不是 active (running),最近 100 行日志里有没有启动失败、配置错误、端口占用、权限错误。pgrep -af 用来确认进程是否真的存在,以及启动参数是不是预期的。 2. 端口有没有开 使用场景:服务进程存在,但客户端连不上;启动时报 Address already in use;不确定服务监听的是本机、内网还是所有网卡。 BASHss -lntp ss -lntp | grep ':8080' lsof -i :8080 重点看有没有 LISTEN,监听地址是 0.0.0.0、127.0.0.1 还是具体内网 IP。服务只监听 127.0.0.1 时,本机能访问,外部机器通常访问不到。 3. 从外部能不能访问 使用场景:本机服务看起来正常,但浏览器、调用方、其他机器访问失败;需要区分是 DNS、网络、端口、HTTP 还是服务端处理慢。 BASHnc -zv <ip> <port> curl -Iv http://<host>:<port>/ dig <domain> ping -c 4 <ip> nc 看 TCP 端口能不能连上,curl -Iv 看 HTTP 状态码、重定向和握手过程,dig 看域名是否解析到预期 IP。ping 只作为辅助参考,很多云服务器会禁 ICMP,ping 不通不代表 TCP 一定不通。 ...