Linux
Busybox ping IP 有效,但主機名 nslookup 因“錯誤地址”而失敗
我正在編譯我自己的 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