You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

内网DNS查询返回错误IP,/etc/hosts配置未生效问题咨询

内网DNS查询返回错误IP,/etc/hosts配置未生效问题咨询

嗨,这个问题我之前排查过好多次,咱们来拆解一下原因:

首先得明确一个关键点:host命令本身就是专门用于直接查询DNS服务器的工具,它默认会跳过本地的/etc/hosts配置,直接向系统预设的DNS服务器发起请求。

你看到的foo.internal.domain.com这个结果,是因为系统的DNS搜索域默认配置了internal.domain.com,当你用host -t a foo时,它自动把foo补全成了完整域名foo.internal.domain.com,然后去DNS服务器查这个域名的A记录,自然返回的是DNS里存的10.43.55.23。

那怎么验证/etc/hosts的配置是否真的生效呢?你可以试试这些工具:

  • 直接执行ping foo,正常情况下会返回你在/etc/hosts里设置的10.74.74.76
  • 用getent hosts foo命令,它会严格遵循系统/etc/nsswitch.conf里的主机解析规则(一般是先查本地文件再查DNS),能直接显示/etc/hosts里的记录

如果你的/etc/nsswitch.conf里hosts条目配置的是files dns(这是大多数系统的默认配置),那像浏览器、curl、ping这类常规应用都会优先读取/etc/hosts的内容,只有host、dig这类纯DNS查询工具会绕过本地配置直接查DNS。

备注:内容来源于stack exchange,提问作者deostroll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:54:53