首页 / 新闻资讯 / 常见问题

内网域名解析走错出口:hosts 与内网 DNS

2026-08-09分类:常见问题管理员

## 症状现象

内网服务用域名访问,解析出来的却是公网 IP,请求出了公网绕一大圈再回来,延迟高且行为怪异;更糟的情况是解析到一个已经失效的旧公网地址,直接不通。ping 域名看到的地址与内网真实地址对不上,问题出在解析顺序上。

## 定位过程

系统的名字解析有优先级:先查本地 hosts 文件,再按解析配置依次查域名服务器。排查沿这条链走三步。第一步看 hosts:历史调试留下的记录把内网域名钉在某个公网 IP 上,机器换过环境后这条记录变成毒药。第二步看解析配置:域名服务器指向公网公共 DNS 时,它根本不知道内网域名的存在,按公网权威记录返回公网地址,这正是内网域名必须配内网 DNS 的原因。第三步验证归属:分别向不同服务器查同一域名,比对返回。

grep -v "^#" /etc/hosts
cat /etc/resolv.conf
dig @192.168.10.10 git.internal +short
dig @223.5.5.5 git.internal +short

## 解决方法

清理 hosts 里的过期内网记录,规范用法是临时调试用完即删。域名服务器改为内网 DNS,或在公共 DNS 之外补充内网解析的搜索域配置。多层缓存要注意:系统解析缓存与浏览器缓存都可能存旧结果,改完配置后清缓存再验证。验证以 dig 指定内网 DNS 查询返回内网地址为准。

## 预防建议

内网域名用专属后缀命名,与公网域名彻底分离,公共 DNS 永远查不到它,配置错误立即暴露而不是静默走错。机器初始化模板统一写入内网 DNS 配置,顺云云服务器批量部署时用镜像市场固化解析配置,减少逐台漂移。

排查解析问题的通用心法再提炼一次:先确认问题机器的解析来源,hosts、本地缓存、配置的服务器,一层层看它到底问了谁;再分别向各来源查询同一域名,看各自返回什么。两个动作做完,解析走错的路径完全暴露。把常用查询命令做成一键脚本,排查从十分钟缩到一分钟。新建机器的解析配置纳入基线检查,环境再怎么变,解析来源始终受控。

常见问题