服务注册到Eureka后访问报DNS_PROBE_FINISHED_NXDOMAIN故障排查
该问题的可能原因汇总
DNS_PROBE_FINISHED_NXDOMAIN 报错的核心是浏览器无法将 random-animal 这个域名解析到有效IP地址,random-animal 仅作为Eureka内部的服务标识存在,公网DNS和本机默认DNS都没有对应的解析记录,此前能正常访问依赖本地的特殊配置,环境变动后配置失效就会触发报错,常见的原因如下:
- 本地hosts映射丢失:此前你大概率在本地hosts文件(Windows路径:
C:\Windows\System32\drivers\etc\hosts,Mac/Linux路径:/etc/hosts)中添加过random-animal指向服务实例IP的映射规则,环境变动(比如系统更新、安全软件清理、hosts文件被还原)后该条记录被删除,导致解析失败。 - 本地反向代理服务失效:如果你之前是通过Spring Cloud Gateway、Nginx等反向代理做Eureka服务名转发,环境变动后代理服务未启动、代理服务的Eureka客户端注册失效、或者代理的路由规则被修改,都会导致
random-animal的请求无法被转发到对应服务实例,直接触发DNS解析失败。 - 浏览器/系统代理配置变动:如果之前你使用了支持内网Eureka服务名解析的专用代理,环境变动后代理被关闭、切换为其他公网代理、或者浏览器代理配置被重置,就会失去服务名解析能力。
- Docker网络配置变更:从Eureka注册记录能看到服务是运行在Docker容器中,注册地址为
host.docker.internal,如果之前你依赖Docker内置DNS做容器服务名解析,环境变动后Docker自定义网桥被删除、容器网络配置被重置,都会导致本机无法直接解析Docker内部的服务名。 - 本地DNS缓存异常:就算相关解析配置没有丢失,本地DNS缓存存在过期的失效记录也会导致解析失败,可通过对应命令清理缓存验证:Windows执行
ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder。 - 服务实例注册配置变更:检查RANDOM-ANIMAL服务的
eureka.instance.hostname配置,若该配置被修改为random-animal且你本地没有对应解析记录,就会出现该问题,此前配置为实际IP/可解析域名时可以正常访问。
内容的提问来源于stack exchange,提问作者Ekaterina
相关产品推荐
相关产品推荐

