[linux] 域名解析失败案例定位 [Errno -2] Name or service not known

首先发现代码里这段运行报错:

socket.gethostbyname_ex(host_name)
Traceback (most recent call last):
File “”, line 1, in
socket.gaierror: [Errno -2] Name or service not known

import socket
host_name = socket.gethostname()
print(socket.gethostbyname(host_name))

怀疑是域名解析出问题,首先查看域名解析文件resolv.conf ,是否正常,发现文件没问题

cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114

一直在纠结socket那段代码,host_name 去转换解析为ip地址一直失败,那就是域名解析肯定出了问题,但是配置文件又正常,于是发现ping host_name,其他正常环境都是正常的,ping这个环境就直接失败,反复修改配置也
没效果

查看/etc/hosts,检查localhost是否配置
这些文件都正常,定位了很久,直到发现ping localhost 同样找不到ip,ping127可以成功,但是把dns 114注释了,就又可以成功,重启了NetworkManager,看日志,很多误导性的报错也影响了判断

突然发现往hosts文件里新增域名解析配置没有效果,这时候开始研究hosts文件生效的原理,
发现是由/etc/nsswitch.conf nsswitch服务管理的。

nsswitch(Name Service Switch)是一个用于配置系统命名服务解析的工具。它定义了在系统中查找特定信息的方法,例如主机名、用户和组。/etc/nsswitch.conf 文件是 nsswitch 的配置文件,用于指定系统在查找特定信息时应该使用哪些服务

查看配置文件 ,发现/etc/nsswitch.conf是个软连接,已经飘红,原链接文件已经被删除,
在这里插入图片描述
这时候开始找,authselect这个目录是怎么生成并删除的,在历史记录中发现了终于:
由于 authconfig命令导致的修改了配置并修改了原文件链接到新的目录,我恢复时删除了authselect目录导致域名解析出现问题,从其他节点恢复了这个文件后,hosts文件生效,localhost也可以ping通。

晚上定位了2,3个小时,早上来又一直看,怀疑了很多点,网卡的配置,mac地址是不是冲突,最后才发现是hosts文件不生效导致的,简单的域名解析,😅工作感觉是踩了很多坑也。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误通常是由于无法解析主机名或服务的错误导致的。根据引用\[1\]和引用\[2\]的描述,这个错误可能是由于网络连接问题引起的。可能的原因包括DNS解析问题或网络连接不稳定。根据引用\[3\]中的描述,尝试了一些方法但没有解决问题。为了解决这个问题,你可以尝试以下几个步骤: 1. 检查网络连接是否正常。确保你的网络连接稳定,并且可以访问其他网站。 2. 检查DNS设置。尝试使用其他DNS服务器,例如Google的公共DNS服务器(8.8.8.8和8.8.4.4),看看是否能够解决问题。 3. 检查防火墙设置。确保你的防火墙没有阻止你的程序访问网络。 4. 尝试使用IP地址而不是主机名。如果你知道要访问的网站的IP地址,可以尝试直接使用IP地址进行访问,看看是否能够解决问题。 如果以上方法都没有解决问题,那么可能是由于其他原因导致的。你可以尝试在网络上搜索类似的问题,看看其他人是如何解决的。如果问题仍然存在,建议你联系网络管理员或技术支持寻求帮助。 #### 引用[.reference_title] - *1* [raise URLError(err) urllib2.URLError: <urlopen error [Errno -2] Name or service not known...](https://blog.csdn.net/weixin_30500105/article/details/98935480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>](https://blog.csdn.net/m0_46378271/article/details/120120273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [urllib2.URLError: <urlopen error [Errno -2] Name or service not known>](https://blog.csdn.net/huangzhijie3918/article/details/48175755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moke丶青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值