1. 程式人生 > >linux不能ping通域名能ping通ip

linux不能ping通域名能ping通ip

arm-linux 問題 arm 服務 庫文件 解決問題 重新 命令幫助 name

首先檢查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寫的,所以去掉了這個庫

linux不能ping通域名能ping通ip