我有 2 个不同的 Linux 设备,其中一个的内核是使用 ltib 完成的(L从现在开始),另一个是 buildroot 的(乙今后)。
我设法添加一个 DNS 解析器乙 通过使用:
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
然后ping google.com
工作正常。
另一方面,关于L,同样的 schtik 不起作用,尽管 ping8.8.8.8没问题,正在 ping谷歌,谷歌.com或者www.google.com总是失败。
我想要做的是以某种方式比较两个内核以了解它的内部内容乙缺少的L并启用 DNS 解析。
我应该去哪里寻找什么?
我用过本指南从中我了解到,因为我的/etc/nsswitch.conf
看起来像这样:
cat /etc/nsswitch.conf
passwd: files rf
shadow: files
group: files
hosts: files dns
services: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files
automount: files
aliases: files
bootparams: [NOTFOUND=return] files
那么 ping 命令应该查看/etc/resolv.conf
其中包含以下行nameserver 8.8.8.8
:
cat /etc/resolv.conf
nameserver 8.8.8.8
所以我真的不明白为什么我的 ping 失败。
我尝试编辑以从条目中/etc/nsswitch.conf
删除(使其看起来像),但没有帮助。files
hosts
hosts: dns
答案1
进行 DNS 解析的不是 Linux 内核,而是 C 库。您的 LTIB 系统使用哪个 C 库?默认情况下,Buildroot 使用 uClibc,它没有nssswitch.conf
配置文件。