为什么需要固定流程
线上「打不开网站」「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
把「现象、命令输出、变更、结论」写入工单,下次同类故障可直接复用本清单。
小结
网络问题少靠直觉,多靠分层验证。把这七步固化成脚本或笔记,是从「会敲命令」到「能稳定排障」的关键一步。