![修改 resolv.conf.d/head 后无法 ping 本地主机](https://linux22.com/image/1049256/%E4%BF%AE%E6%94%B9%20resolv.conf.d%2Fhead%20%E5%90%8E%E6%97%A0%E6%B3%95%20ping%20%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA.png)
我从大约一周前就开始观察到这种行为,并且我认为我没有更改任何相关配置。
问题是,当我运行时ping localhost
,出现以下错误:
ping: unknown host localhost
当我通过机器主机名 ping 时也会发生同样的情况。这也导致了另一个问题:每当我使用 运行命令时sudo
,我都会得到sudo: unable to resolve host [myhostname]
。
后来我看了一下我的/etc/resolvconf/resolv.conf.d/head
。之前(很久以前)我nameserver 8.8.8.8
在上面添加了一行。注释掉这行后,ping
就可以按预期正常工作。
另请注意,此行为仅当通过 Wi-Fi 连接到互联网时才会发生。不过,我没有机会通过以太网测试连接。但如果我断开连接,则一切都会正常进行。
这是什么原因造成的?我该如何防止这种行为并保留 8.8.8.8 作为我的名称服务器?
答案1
事实证明我的不知何故etc/nsswitch.conf
失踪了(但不知道为什么)。
已使用 修复了此问题echo 'hosts:files dns' | sudo tee /etc/nsswitch.conf
,但更好的选择可能是获取默认nsswitch.conf
文件。