err_dns_timed_out表明dns解析链路中断,需先验证是否真走dns:抓包看udp53请求、查客户端日志、nslookup测试;再清缓存、换8.8.8.8/114.114.114.114等公共dns、检查hosts、禁用ipv6、重启dns服务。

心跳检测中出现 DNS 解析超时(net::ERR_DNS_TIMED_OUT),说明心跳服务在尝试连接远端地址(如日志服务、监控平台、云厂商 endpoint)时,无法将域名解析为 IP 地址。这不是心跳逻辑本身的问题,而是底层网络解析链路中断。排查需聚焦“域名→IP”这一步是否卡住,而非重试次数或超时阈值设置。
确认心跳请求是否真走 DNS 解析
很多心跳客户端默认使用域名(如 log-service.aliyuncs.com),但部分 SDK 或配置支持直接填 IP 或启用本地缓存。先验证它是否真的在每次心跳都发起 DNS 查询:
- 用
tcpdump -i any port 53或 Wireshark 抓包,观察心跳触发时是否有 UDP 53 端口的 DNS 请求发出 - 检查客户端日志(如 Logtail 的
/usr/local/ilogtail/ilogtail.LOG)是否含DNS resolve failed、getaddrinfo: Name or service not known等字样 - 若心跳 endpoint 是硬编码 IP(如
10.123.45.67:8080),则 DNS 超时不可能发生——此时应怀疑是网络连通性或防火墙问题
隔离本地 DNS 解析能力
心跳服务依赖系统级 DNS 解析器,其行为与浏览器一致。若本机 nslookup log-service.aliyuncs.com 或 dig log-service.aliyuncs.com 也超时,说明故障在本地环境:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 执行
ipconfig /flushdns(Windows)或sudo systemd-resolve --flush-caches(Linux systemd)清空缓存 - 临时修改网卡 IPv4 DNS 设置:首选设为
8.8.8.8,备用设为114.114.114.114,避免运营商 DNS 响应慢或劫持 - 检查
/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)是否错误映射了该域名到无效 IP 或 127.0.0.1
绕过 DNS 查看是否根本连通
如果心跳 endpoint 域名可查到稳定 IP(例如通过其他正常机器 nslookup 得到 104.198.14.52),可临时把心跳配置改成直连该 IP + 端口测试:
- 若直连 IP 心跳成功 → 100% 是 DNS 解析环节故障,不是网络策略或证书问题
- 若直连 IP 仍失败 → 故障转向 TCP 连通性(安全组、ACL、代理、TLS 握手等),需用
telnet ip port或curl -v https://ip:port/health进一步验证
检查 IPv6 与协议栈干扰
某些心跳客户端(尤其 Go 或 Java 编写的)默认优先尝试 AAAA 记录(IPv6)。若本地未启用 IPv6 或网络不支持,系统可能卡在 IPv6 查询超时后才回落 IPv4,整体表现为“DNS 超时”:
- 在网卡属性中取消勾选 “Internet 协议版本 6 (TCP/IPv6)”
- Linux 下可临时禁用 IPv6:运行
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 - 重启 DNS 客户端服务:
net stop dnscache && net start dnscache(Windows)或sudo systemctl restart systemd-resolved(Linux)










