1.
准备工作:收集基础信息与访问权限
- 确认你有目标服务器的控制台或SSH访问权限(root或具备sudo权限)。
- 收集相关时间窗:故障开始时间、影响范围(单台/多台/全部区域)。
- 准备好本地诊断机器与一台位于不同网络的第三方(如家用PC、云主机)以便跨网络验证。
2.
第一步:从外部验证连通性(Ping/Traceroute)
- 在本地和第三方机器上同时运行:ping -c 5 <服务器IP>,观察丢包率与延迟。
- 运行 traceroute 或在Windows上使用 tracert:traceroute -w 3 <服务器IP>,记录在哪一跳出现超时或路由断裂。
- 如果可用,运行 mtr <服务器IP>(Linux),让它持续几分钟以观察丢包随时间变化。
3.
第二步:从服务器端查看网络接口和路由
- 登录服务器,检查接口状态:ip addr show 或 ifconfig -a,确认网卡有IP且UP。
- 查看路由表:ip route show,确认默认网关存在且与宿主网络一致。
- 检查ARP表:ip neigh show,以确认下一跳MAC解析正常。
4.
第三步:检查系统日志与网络服务日志
- 查看内核与系统网络相关日志:sudo journalctl -u NetworkManager -S "1 hour ago" 或 tail -n 500 /var/log/messages、/var/log/syslog。
- 查看防火墙/iptables日志:sudo iptables -L -n -v 与查找 /var/log/ufw.log 或自定义日志,注意DROP/REJECT条目和时间戳。
- Web或应用服务日志:nginx/Apache在 /var/log/nginx/ 或 /var/log/httpd/,数据库日志(MySQL/Postgres)也一并检查,看是否因网络导致连接超时或大量重连。
5.
第四步:使用tcpdump抓包定位问题点
- 在服务器上运行抓包(示例抓与外部IP的通信):sudo tcpdump -i eth0 host <客户端IP> -w /tmp/capture.pcap。
- 若外部ping不通,抓包同时在路由器/交换机上抓(若能访问)。检查是否有ICMP请求到达服务器网卡但无响应,或响应发出后在下一跳消失。
- 用Wireshark打开pcap,过滤tcp.flags.reset==1或icmp.type==3(目的不可达),找出被丢弃或被重置的包并记录时间与源/目的。
6.
第五步:检查DNS与反向解析问题
- 从本地与服务器上分别执行:dig +trace <域名> 和 dig @8.8.8.8 <域名>,确认解析是否正确且TTL/返回IP无误。
- 测试反向解析:dig -x <服务器IP>,某些安全策略或客户端会因反向解析问题拒绝连接。
- 如果发现解析到旧IP或被污染,联系DNS提供商或修改域名解析后等待生效(并检查各地DNS缓存)。
7.
第六步:查看上游和BGP路由状态
- 若怀疑跨公网路由问题,使用在线Looking Glass或BGP工具(如 RIPEstat、bgp.he.net、bgpview.io)查看AS路径是否正常。
- 检查是否有大面积BGP劫持或路由泄漏:查看你的前缀在全球的可达性变化记录。
- 若BGP异常,联系你的ISP或云厂商网络团队,提供traceroute输出与BGP前缀信息。
8.
第七步:确认机房/云服务状态与工单信息
- 登录云服务商(AWS、GCP、Azure)或托管商控制台,查看Status Page与近期公告。
- 在社交媒体或DownDetector等平台搜索服务中断报告,确认是否为大面积事件。
- 若确认与供应商相关,立即提交工单并附上日志、抓包、traceroute与影响范围的证明。
9.
第八步:常见本地或防火墙造成断连的检查与修复
- 确认iptables/nftables规则没有误阻:sudo iptables -S 或 sudo nft list ruleset,临时清空测试 sudo iptables -F。
- 检查SELinux/AppArmor是否拒绝网络访问:sudo ausearch -m avc --start recent_time。
- 若是端口被阻塞,使用 sudo ss -tulpn | grep
查看监听状态,并用 telnet 或 curl -v http://: 测试。
10.
第九步:针对云主机的虚拟网络/安全组检查
- 在控制台检查安全组、网络ACL、子网路由表,确认允许进出流量的规则未被误改。
- 检查弹性IP、NAT网关、负载均衡器的健康检查设置与后端实例状态。
- 若是跨区域问题,尝试从同一区域的其他实例访问目标实例,以排除区域网络中断。
11.
第十步:总结判定流程与形成故障报告
- 以时间轴方式记录:外部观察->服务器端观察->抓包结果->路由/BGP/DNS检查->供应商状态。
- 故障判断依据示例:若traceroute在ISP边缘断开且BGP不可达,则为上游路由问题;若服务器网卡无流量但本机应用正常,则可能为宿主网络或防火墙问题。
- 最后形成报告,附上关键证据(日志片段、traceroute、pcap、控制台截图)并给出建议的短期与长期解决方案。
12.
问:如何快速判断“是美国服务器在断网”还是只是本地网络问题?”
问:如何快速判断“是美国服务器在断网”还是只是本地网络问题?
答:先用第三方(例如家用网络、另一云主机或在线ping服务)对同一IP做ping/traceroute,如果第三方也无法连通且traceroute在相同跳数断开,倾向于服务器或上游网络故障;如果第三方可通而你本地不可通,则为本地网络或ISP问题。
13.
问:日志中看到大量TCP重传和RST,说明什么?我该如何处理?
问:日志中看到大量TCP重传和RST,说明什么?我该如何处理?
答:大量重传表示链路丢包严重,RST说明连接被主动重置。先用tcpdump抓取重传对应的三次握手/数据包,确认是否在服务器发出或在中间节点丢失。根据结果分别检查服务器NIC、驱动、虚拟网络链路或上游ISP,并联系网络提供商提供链路级诊断。
14.
问:如果确定是BGP或上游ISP问题,下一步应怎么做以尽快恢复服务?
问:如果确定是BGP或上游ISP问题,下一步应怎么做以尽快恢复服务?
答:立刻联系你的ISP/云网络支持,提供受影响前缀、traceroute输出与时间窗口;同时评估临时绕路(切换到其他可用区/机房、启动备用公网前缀或使用跨区负载均衡)以降低影响,并在恢复后复盘BGP公告与路由策略以防复发。
来源:从日志分析看美国服务器断网了吗现在的故障根源