Linux

Busybox ping IP 有效,但主機名 nslookup 因“錯誤地址”而失敗

  • December 17, 2018

我正在編譯我自己的 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

有什麼我遺漏的想法嗎?這是我的配置: http: //pastebin.com/vt4vGTgJ

編輯

如果不是核心,我會失去什麼?我正在使用靜態連結的busybox。此系統中沒有共享庫。

問題出在busybox上。我切換到預編譯版本並且沒有問題。我需要研究它的編譯選項。謝謝你的幫助。

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

在靜態連結的 glibc 程序(如本例中的 busybox)中,DNS 功能存在已知問題,因為 libnss 必須動態載入。建構一個 uClibc 工具鏈並連結busybox 可以解決這個問題。

我通過編輯解決了相同的症狀:/etc/nsswitch.conf並將 DNS 添加到以下行:

hosts:      files dns

引用自:https://unix.stackexchange.com/questions/124283