linux不能ping通域名能ping通ip

首先檢查dns配置文件:/etc/resolv.conf,看下dns配置正確否;

然後檢查此文件:/etc/nsswitch.conf第38行,是否有dns,即hosts : files dns
已經設置了DNS,可還是顯示上面的錯誤信息, 網上說需要重新編譯busybox才能ping通? 如下,可是按照步驟做就不能啓動了? 請問飛凌有沒有提供已經改好的,或者給個指導?

2410開發板解析不了域名
ping localhost
ping: bad address 'localhost'

ping http://www.baidu.com/
ping: bad address 'www.baidu.com'

存在/etc/hosts,/etc/resolv.conf,/etc/nsswitch.conf

都是從host上拷過去的

/lib下也有/lib/libnss_dns, /lib/libnss_files, and /lib/libresolv*

可以ping 通外網IP,但就是解析不了域名!!

cat /etc/resolv.conf
nameserver 202.103.24.68
在開發板上能ping通這個DNS服務器

按理說ping 127.0.0.1可以ping通
但ping localhost不能
說明可能沒讀/etc/hosts這個文件
但爲什麼不讀呢?網上有人說是缺庫,但我所有相關的庫都在/lib下了,也是for arm的

解決方法:

在網上找到這麼一段話

Sandr0 06-12-02 01:16
我也有同樣的疑問,而且當我選擇靜態編譯的時候,複製了那幾個文件也沒用。只有將busybox配置成使用動態連接庫文件的時候,複製了那幾個文件就解決問題了。

我在busybox的命令幫助頁面上找到了這樣一段話:
引用:
LIBC NSS
When used with glibc, the BusyBox 'networking' applets will similarly require that you install at least some of the glibc NSS stuff (in particular, /etc/nsswitch.conf, /lib/libnss_dns, /lib/libnss_files, and /lib/libresolv*).

於是重新編譯busybox,採用動態鏈接方式

再把/usr/local/arm/3.4.1/arm-linux/lib下的所有.so*文件複製到文件系統的/lib下,果然就可以ping通百度了!

鑑於libstdc++.so有 3834613 字節大小,而大部份linux程序是用C寫的,所以去掉了這個庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章