游乐游手机版
首页/科技数码/文章详情

Linux主机解析故障排查:/etc/hosts配置为何不生效?

时间:2025-12-02 20:39
在docker容器化平台安装过程中,我们遇到一个典型问题:容器启动过程中,访问镜像仓库服务失败,重试40次依然无果,来看看怎么回事。 在docker容器化平台安装过程中,我们遇到一个典型问题:容器启

在使用Docker容器化平台进行安装时,我们遇到了一个典型问题:容器在启动过程中无法访问镜像仓库服务,即使重试了40次仍然没有成功。让我们一起来探究这究竟是怎么回事。

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

部署人员在节点上进行手工测试时发现了报错信息

curl https://registry.local.net:5000curl: (6) Could not resolve host: registry.local.net

对网络配置熟悉的同学都知道,主机上的DNS解析会优先匹配/etc/hosts中配置的本地解析记录,如果此文件中没有相关配置,才会转向/etc/resolv.conf中设置的DNS服务器进行查询。

1️⃣ 排查过程

在部署过程中,镜像仓库服务会在所有节点上配置本地解析记录。我们可以先通过curl或ping命令来测试域名解析

节点手工访问同样出现解析失败

curl https://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设置,最后再查看系统配置文件,这样才能快速定位问题所在。

来源:https://www.51cto.com/article/826590.html
上一篇刘强东暖心宴请京东双11骑手,东哥请客惊喜现场直击! 下一篇抖音回应京东商家跨平台经营权争议,独家披露内部处理方案
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw手机App上线,结果翻车了
科技数码 · 2026-07-01

OpenClaw手机App上线,结果翻车了

OpenClaw 官方宣布,已正式推出 iOS 和 Android 原生移动 App,用户如今可以在手机上使用这款主打“能真正帮你做事”的个人 AI 助手。官方在 X 上给出的定位也很直接:把 Agent 放进口袋里,让用户可以在移动端处理频道消息、任务和回复。从功能上看,OpenClaw 移动端并

优必选CEO周剑:家庭机器人生态核心投入过半精力
科技数码 · 2026-07-01

优必选CEO周剑:家庭机器人生态核心投入过半精力

先说几个核心判断:优必选正在布局一盘长远战略。创始人兼CEO周剑在近期一场媒体沟通会上,直接亮出了公司未来的发展路线——工业、商用、家庭陪伴机器人三条业务主赛道并行推进,现阶段每条线各占约一半精力。一边是已经能够稳定创造收入的工业场景,另一边则是他眼中“最具想象力与未来空间”的家庭陪伴领域。工业人形

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛
科技数码 · 2026-07-01

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛

6月30日,申银万国在光连接系列研报中重点指出,MPO光连接器领域的投资机会值得高度关注。通俗来说,随着AI算力集群持续扩张,光互联升级带来的连锁效应——数据中心光纤通道数量、前面板端口密度、机柜内光纤管理复杂度——均在同步攀升。光连接器的角色早已超越传统的低价值标准件,如今它直接决定着链路插损、可

龙岗AR实景剧本游内测体验短板有效破解之道
科技数码 · 2026-07-01

龙岗AR实景剧本游内测体验短板有效破解之道

在今年龙岗区第二届人工智能与机器人发展大会上,区级部门一次性推出了7个AI“龙搭子”。其中,名为“龙导游”的成果成为文商旅融合领域的核心亮点。据南都N视频记者了解,依托“龙导游”打造的全区全域AR实景剧本游“龙岗大陆”,已在今年五一假期发布了内测版本。经过一个月市场验证后,该项目正式启动面向全社会的

南下资金6月30日净买入中芯国际与建滔积层板
科技数码 · 2026-07-01

南下资金6月30日净买入中芯国际与建滔积层板

6月30日,南下资金持续大举买入港股,单日净流入金额高达58 95亿港元。接下来,我们直接盘点哪些个股获得资金青睐、哪些遭到减持: 净买入方面,中芯国际领跑全场,单日吸金19 33亿港元;建滔积层板紧随其后,净买入10 59亿港元;腾讯控股获得7 65亿港元净流入;智谱(02513 HK)也有6 5