1.
概述与准备工作
- 目的:明确排查目标,判断是全面不可达还是局部问题。
- 工具准备:ping、traceroute/mtr、dig/nslookup、curl、telnet、tcpdump、ss/iptables。
- 账号与权限:确保有服务器root或运维账号、云厂商控制台权限。
- 数据记录:记录时间点、测试IP/域名、测试节点(国内运营商节点)。
- 通信准备:准备好运维沟通记录,便于与IDC或云厂商联系。
- 备份配置:在操作防火墙或网络配置前先备份现有配置文件。
2.
DNS与域名解析检查
- 使用dig测试:dig +short mydomain.com @8.8.8.8 与 @223.5.5.5 对比解析结果。
- 检查TTL与A记录:若域名解析至错误IP或TTL异常,应检查域名托管商面板。
- DNSSEC/CAA等限制:确认没有误配置的DNSSEC或CAA导致解析失败。
- 本地DNS污染:国内可能存在DNS污染,使用 dig +trace 检查权威解析链。
- 示例命令与输出示范:dig +short hk.example.com 返回 203.0.113.45。
- 若解析正常但不可达,进入路由与连通性下一步排查。
3.
网络连通性与路由追踪
- ping测试:从国内多个节点 ping -c 10 203.0.113.45,观察丢包与延迟。
- traceroute/mtr:traceroute -n 203.0.113.45 或 mtr -rwzbc100 查看丢包在哪一跳开始。
- BGP/路由过滤:检查是否被运营商或国际链路过滤(查看AS路径)。
- MTU与TCP分片:若MSS不匹配,可能导致TCP握手失败,测试不同MTU(如1472)。
- 示例表格(中心显示ping/traceroute摘要):
| 测试项 | 结果 | 说明 |
| Ping | 10次,丢包30%,平均延迟120ms | 明显丢包需定位链路 |
| Traceroute | 丢包始于第6跳(运营商出口) | 链路或路由问题 |
| MTR | 持续性丢包100% | 可能被策略或黑洞路由拦截 |
4.
服务器端服务与防火墙检查
- 进程与端口:ss -tunlp | grep nginx 或 netstat -tunlp 检查服务监听。
- 防火墙规则:iptables -L -n 或 ufw status 检查是否误封了国内网段。
- 云厂商安全组:确认云平台安全组允许 80/443/22 等端口并限制IP白名单设置。
- 抓包分析:tcpdump -nn -s0 -c200 host 203.0.113.45 and port 80 检查是否有RST或ICMP unreachable。
- 服务配置:示例 Nginx 配置片段 server { listen 80; server_name hk.example.com; } 与 keepalive_timeout 15。
- 示例服务器规格:Ubuntu 20.04, Nginx 1.18, 4vCPU/8GB, 公网IP 203.0.113.45, 带宽100Mbps。
5.
CDN、WAF 与域名加速配置
- CDN覆盖问题:确认 CDN 节点是否支持中国大陆回源,部分香港 CDN 节点回源策略会被限制。
- 回源域名与证书:确保回源使用正确的域名与证书,回源验证失败会导致访问异常。
- WAF规则误报:云WAF可能阻断正常流量,查看拦截日志并放行合法IP或规则。
- CNAME与缓存:确认 CNAME 链接到 CDN 后未出现旧记录或低TTL导致解析延迟。
- 测试绕开CDN:直接解析到原始IP(203.0.113.45)访问,判断问题是CDN层还是源站层。
- 若使用境内加速节点,可考虑将部分流量迁移至国内节点或使用专线回源。
6.
DDoS 与流量清洗策略
- 流量突增:检查流量图表(如 100Mbps 突增至 800Mbps)是否为攻击流量。
- ISP/云厂商清洗:联系带宽提供方或云厂商开启清洗或黑洞策略以保护源站。
- SYN/UDP洪泛检测:tcpdump 显示大量 SYN 包或 UDP 包时需启用SYN cookies或rate-limit。
- 临时限速与规则:利用 iptables limit 或 cloud WAF 黑名单临时降低压力。
- 长期方案:部署具备清洗能力的DDoS防护服务或启用多点冗余(多地域负载均衡)。
- 示例防护配置片段:iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT。
7.
真实案例:香港站点对国内断连的排查与解决
- 问题描述:客户hk.example.com(IP 203.0.113.45)在中国多地无法访问,用户反馈大量超时。
- 初查结果:dig 正常解析,多地 ping 显示第6跳开始丢包,mtr 指向某国际出口AS。
- 进一步分析:tcpdump 在源站未见大量攻击流量,显示中间链路丢包与ICMP unreachable。
- 处理措施:与带宽运营商沟通后发现其对可疑流量施加了策略,调整了BGP策略并清理黑洞路由。
- 最终结果:经更改回源策略并在CDN开启大陆节点缓存,ping丢包降至0%,页面恢复。
- 总结教训:该案例表明需同时检查链路、运营商策略与CDN回源配置以快速定位问题。
8.
总结与建议操作清单
- 快速排查顺序:DNS -> 路由/链路 -> 源站服务与防火墙 -> CDN/WAF -> DDoS。
- 常用命令清单:ping -c10、traceroute -n、mtr、dig +trace、tcpdump -nn -s0。
- 备选方案:启用大陆节点CDN、专线回源或多点部署以提高可用性。
- 日志与监控:部署多点监控(国内外监控点)并保留抓包/日志以便追责。
- 联系渠道:遇到链路或BGP问题及时与云厂商/ISP/带宽提供方沟通并提供抓包与traceroute结果。
- 规范化操作:在对外发布变更前做回滚计划并维护变更记录。
来源:遇到香港服务器国内无法访问时的排查步骤与解决方案