Busybox ping IP 有效,但主机名 nslookup 因“地址错误”而失败

All*_*Kll 17 linux kernel dns busybox linux-kernel

我正在编译自己的 3.14 内核。我担心我可能遗漏了一些重要的网络功能来使 DNS 正常工作。

我无法解析域名。我可以 ping 我的 DNS 服务器。我可以在其他机器上使用该 DNS 解析,所以我知道它不是服务器。

~ # cat /etc/resolv.conf
nameserver 192.168.13.5

~ # nslookup google.com
Server:    192.168.13.5
Address 1: 192.168.13.5

nslookup: can't resolve 'google.com'

~ # ping -c 1 google.com
ping: bad address 'google.com'

~ # ping -c 1 192.168.13.5 
PING 192.168.13.5 (192.168.13.5): 56 data bytes
64 bytes from 192.168.13.5: seq=0 ttl=128 time=0.382 ms

--- 192.168.13.5 ping ststistics ---
1 packets transmitted, 1 packets recieved, 0% packet loss
reound-trip min/avg/max = 0.382/0.382/0.382 ms
Run Code Online (Sandbox Code Playgroud)

有什么想法我遗漏了吗?这是我的配置:http : //pastebin.com/vt4vGTgJ

编辑

如果不是内核,我会错过什么?我正在使用静态链接的busybox。该系统中没有共享库。

All*_*Kll 7

问题在于busybox。我切换到预编译版本并且没有问题。我需要研究它的编译选项。谢谢你的帮助。

https://gist.github.com/vsergeev/2391575

静态链接的 glibc 程序(如本例中的 busybox)中的 DNS 功能存在已知问题,因为必须动态加载 libnss。构建一个 uClibc 工具链并将 busybox 链接到它可以解决这个问题。