本文针对在香港地域的云上运行场景,概述了当出现访问中断或“连接不上”时,DNS解析如何成为诱因,并给出从本地、服务器到阿里云控制台的逐步排查与可行修复方法,便于迅速定位并恢复服务。
当客户端无法访问应用但实例仍然运行时,问题常见于域名解析环节:包括本地DNS缓存、解析服务器不可达、公共DNS被劫持、域名未生效、或云端的专用DNS(如阿里云内网解析)配置异常。尤其在香港节点,ISP策略和CDN的地域分发也会影响解析结果。
DNS解析
建议按顺序检查:1) 本地DNS缓存与hosts文件;2) 使用不同解析器(如223.5.5.5/8.8.8.8/1.1.1.1)做比对;3) 在服务器端检查能否解析和访问外部;4) 在阿里云控制台查看域名托管、解析记录和安全组/路由表设置;5) 验证是否为CDN或负载均衡的解析策略问题。
常用命令:Linux/macOS:dig @8.8.8.8 example.com +trace;nslookup example.com 223.5.5.5;ping/traceroute 到解析出的IP。Windows:nslookup example.com 8.8.8.8;ipconfig /flushdns。还可用 tcpdump 或 Wireshark 捕获 53 端口流量,确认 UDP/TCP 是否被拦截。
若本地解析错误:清除缓存(Windows/macOS/Linux)并临时修改为可信公共DNS。若域名未生效:检查域名解析记录与TTL,确认解析记录指向正确的EIP或SLB。若是阿里云安全组或网络ACL拦截:放通出入站53/80/443及应用端口,检查SNAT/NAT网关。若是ISP劫持或CDN策略:更换解析或联系运营商/CDN服务商。
重点检查:VPC 子网路由表、NAT网关、EIP 与实例绑定状态、实例所在的安全组与网络 ACL、负载均衡(SLB)后端健康检查以及阿里云解析(AliDNS)中的解析记录、解析线路与权重设置。私有域名则需检查 PrivateZone 和 VPC 绑定关系。
DNS生效受TTL影响:全局缓存TTL到期前旧解析可能仍被使用。可在更改前把TTL调低到较小值(如60秒)以加速切换;更改后恢复正常TTL。对CDN/ISP缓存不可控的情况,通常最多需等待几分钟到48小时不等。
如果服务器或客户端启用了IPv6,而解析返回AAAA记录但目标不支持IPv6,会导致连接失败。可临时优先使用A记录,或在DNS解析器/服务器上关闭IPv6优先。针对DNS64或EDNS问题,可切换至支持的解析器(如阿里云解析/Cloudflare)或在负载均衡上补充相应记录。
部分ISP会注入错误解析(拦截NXDOMAIN或重定向),这会让你误以为服务故障。用多地或多解析器比对结果(如 dig +trace 或到线上第三方检测工具)可以确认是否为劫持。对抗方法包括使用可信的公共DNS、DoH/DoT 加密解析或配置本地 DNS 缓存/转发。
建议使用冗余解析(多家DNS服务商或Anycast解析)、监控DNS解析结果与TTL、配置本地或集群级DNS缓存(dnsmasq、unbound)、在阿里云中使用健康检查与告警、为关键域名设置低TTL以便应急切换、并将安全组/网络策略纳入变更审批流程。