为什么需要固定流程

线上「打不开网站」「SSH 连不上」「偶发超时」往往不是一条命令能看明白的。运维经验告诉我们:按层级缩小范围,比一上来抓包或重装服务更省时间。下面这套七步法可直接当巡检清单用。

第一步:确认现象与边界

先问清三件事:谁访问失败(本机 / 同机房 / 公网)?失败表现(超时、拒绝、证书错误、DNS 失败)?开始时间与是否变更(发版、改防火墙、换 IP)。边界不清时,后续所有探测都可能测错对象。

第二步:链路与网卡

ip link
ip -br addr
ethtool eth0 2>/dev/null | head
dmesg | tail -n 50

看网卡是否 DOWN、是否有 RX/TX 错误。云主机还需确认安全组/弹性网卡绑定是否异常。

第三步:地址与路由

ip route
ping -c 3 网关IP
ping -c 3 1.1.1.1

能 ping 通网关但不能出网,多半是默认路由或 NAT;能出网但域名失败,进入 DNS 步骤。

第四步:DNS

cat /etc/resolv.conf
dig example.com +time=2
getent hosts example.com

容器环境尤其容易出现宿主机 DNS 正常、容器 DNS 指向错误地址的情况。

第五步:端口与进程

ss -lntup | grep -E ':80|:443|:22'
curl -sv --connect-timeout 3 http://127.0.0.1/
curl -sv --connect-timeout 3 https://公网域名/

本机端口在听但外网不通,优先查防火墙与安全组;本机都不通,看服务是否绑定 127.0.0.1。

第六步:防火墙与策略

systemctl is-active firewalld nftables ufw
# firewalld 示例
firewall-cmd --list-all
# 临时放行需记录,排障后回收

改策略前先备份;云厂商控制台规则与系统防火墙可能同时生效。

第七步:服务日志与复盘

systemctl status nginx --no-pager
journalctl -u nginx -n 100 --no-pager
tail -n 100 /var/log/nginx/error.log

把「现象、命令输出、变更、结论」写入工单,下次同类故障可直接复用本清单。

小结

网络问题少靠直觉,多靠分层验证。把这七步固化成脚本或笔记,是从「会敲命令」到「能稳定排障」的关键一步。