Linux主机解析故障排查:/etc/hosts配置为何不生效?
在使用Docker容器化平台进行安装时,我们遇到了一个典型问题:容器在启动过程中无法访问镜像仓库服务,即使重试了40次仍然没有成功。让我们一起来探究这究竟是怎么回事。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

具体来说,在Docker容器化平台的安装过程中,当容器尝试启动时,访问镜像仓库服务总是失败,经过40次重试后问题依旧存在。

部署人员在节点上进行手工测试时发现了报错信息
curl http://registry.local.net:5000curl: (6) Could not resolve host: registry.local.net
对网络配置熟悉的同学都知道,主机上的DNS解析会优先匹配/etc/hosts中配置的本地解析记录,如果此文件中没有相关配置,才会转向/etc/resolv.conf中设置的DNS服务器进行查询。
1️⃣ 排查过程
在部署过程中,镜像仓库服务会在所有节点上配置本地解析记录。我们可以先通过curl或ping命令来测试域名解析
节点手工访问同样出现解析失败
curl http://registry.local.net:5000curl: (6) Could not resolve host: registry.local.net
/etc/hosts文件确实配置了本地地址解析
10.x.16.x registry.local.net
明明已经在/etc/hosts中写入了解析记录,为什么主机仍然提示无法解析这个域名?
我们使用strace命令来检查域名解析的具体调用过程
[root@localhost ~]# strace -e trace=open,openat -f ping -c 1 registry.local.net.....openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/dev/cur_gl", O_RDONLY|O_CLOEXEC) = -1 ENOENT (没有那个文件或目录)openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 5openat(AT_FDCWD, "/usr/lib64/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (没有那个文件或目录)PING registry.local.net (10.xx.16.xx) 56(84) bytes of data.openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 564 bytes from registry.local.net (10.xx.16.xx): icmp_seq=1 ttl=64 time=0.402 ms--- registry.local.net ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 0.402/0.402/0.402/0.000 ms+++ exited with 0 +++
从调用过程来看,程序首先读取了Linux系统的/etc/nsswitch.conf配置文件
进一步排查发现,该文件中相关配置项被注释掉了
#hosts: files dns myhostname
解释:
其中files表示首先查询本地文件/etc/hosts,如果匹配成功则直接返回IP地址。dns表示如果本地文件未能找到对应记录,再去/etc/resolv.conf中配置的DNS服务器进行查询。myhostname用于解析当前主机自己的主机名(即通过hostnamectl设置的主机名)。

也就是说,Linux系统会严格按照files → dns → myhostname的顺序来进行域名解析。如果这个顺序被改变,或者被完全注释掉,就会出现类似"明明写在/etc/hosts中,却不生效"的现象。
那么问题原因就显而易见了,由于此配置被注释,Linux系统默认使用DNS服务器来查询IP地址,但这个域名并未在DNS中注册,解析不出结果完全符合预期。
2️⃣ 解决方案
我们需要修改/etc/nsswitch.conf文件,将注释移除,恢复为
hosts: files dns myhostname
保存后即可立即生效,再次访问:
[root@localhost ~]# curl registry.local.net:5000 -IHTTP/1.1 200 OKCache-Control: no-cacheDate: Mon, 29 Sep 2025 06:45:45 GMT
现在已经能够正常返回结果,问题得到解决。
3️⃣ 总结与启示
1.不要忽略基础配置文件的重要性,很多看似复杂的安装失败问题,最终原因可能是最基础的系统配置。
2.熟悉主机名解析顺序/etc/nsswitch.conf决定了解析优先级,这个文件在平时容易被忽视。
3.排查问题要有层次,先确认本地hosts解析是否生效,再检查DNS设置,最后再查看系统配置文件,这样才能快速定位问题所在。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
荣耀 X80i 手机预售:金属中框 + 7000mAh 电池,1999 元起
荣耀 X80i 开启预售:续航与质感的新答案,1699元起 千元机市场的竞争,总在看似平静中迎来新的变局。4月2日,荣耀X80i正式开启全渠道预售,并将于4月10日全渠道开售。官方建议零售价为1999元起,但结合当前正在进行的“数码家电政府补贴”,到手价可直接下探到1699 15元起,性价比的门槛被
小米推出 2026 款 REDMI G27Q 27 英寸显示器:2K 320Hz、双 DP 2.1,1299 元
小米发布2026款Redmi G27Q 27英寸电竞显示器:2K 320Hz高刷、双DP 2 1接口,首发价1299元 近日,小米旗下品牌Redmi悄然在京东平台上架了全新2026款G27Q电竞显示器。作为一款主打高性价比的电竞装备,这款27英寸显示器核心亮点在于搭载了2K高清分辨率与320Hz极致
卢伟冰回应小米及 REDMI 部分在售产品调价:内存涨价力度远超预期,相比去年 Q1 飙升近 4 倍
关于小米产品价格调整的说明与市场观察 4月3日,小米官方发布了一则关于Xiaomi及REDMI部分产品建议零售价调整的说明。核心原因很明确:全球存储芯片等关键零部件的价格,正在经历一场持续且大幅的飙升。经过审慎评估,公司决定自2026年4月11日0时起,对部分在售产品的售价进行调整。 高管回应:涨价
vivo Pad6 Pro 平板开售:13.2 英寸 4K 屏 + 第五代骁龙 8 至尊版,4299 元起
vivo Pad6 Pro 平板开售:13 2 英寸 4K 屏 + 第五代骁龙 8 至尊版,4299 元起 先看几个关键信息点:vivo最新的旗舰平板Pad6 Pro今天正式开售了。这款产品在几个核心硬件指标上都拿出了相当有诚意的配置。它搭载了高通第五代骁龙8至尊版旗舰芯片,并且业内首次在平板上配备
OPPO Pad 5 Pro 平板现身官网,消息称新机将搭载第五代骁龙 8 至尊版处理器
OPPO Pad 5 Pro 平板官方页面曝光,或将首发骁龙 8 Gen 3 至尊版芯片 安卓平板电脑市场即将迎来一位实力强劲的新成员。近日,OPPO 在其官方网站的预约页面中,低调展示了即将发布的 OPPO Pad 5 Pro。从释放的轮廓海报来看,这款新平板明确支持悬浮磁吸键盘和智能手写笔,直接
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

