1. 程式人生 > >Linux Ubuntu 能PING IP但不能PING主機域名的解決方法

Linux Ubuntu 能PING IP但不能PING主機域名的解決方法

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

vi /etc/nsswitch.conf

hosts: files dns

networks: files

改成:

hosts: files dns wins

networks: files

如果不一樣的話,就在hosts:原來那行後面加個wins 就行了。

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

最近碰到了這麼一個問題: ping一個域名domain_name的時候提示”ping: unknown host domain_name“,但是ping域名對應的IP地址 (使用host或nslookup獲取) 卻沒有問題。

so-name, real-name && linker-name
  Linux共享庫 (shared object) 的real-name命名規則為: libname.so.x.y.z

。其中x表示主 (Major) 版本號,不同主版本號的庫之間是不相容的;y表示次 (Minor) 版本號,它表示庫的增量升級,高的次版本號的庫向後相容 (Backwards Compatible) 低的次版本號的庫;z表示釋出 (Release) 版本號,表示庫的一些修正,效能的改進等。

  共享庫的so-name是在real-name的基礎上去掉次版本號和釋出版本號。so-name檔案一般都是一個指向對應的real-name檔案的一個軟連結。

  共享庫的linker-name是應用程式連結的時候的搜尋名,通常是so-name的一個軟連結。

  執行ldconfig時,系統會更新所有的軟連結,使它們指向最新版本的共享庫。

libc && glibc
  標準C庫 (the standard C library) 實現了ISO C標準,包含了一套所有C程式都可以使用的函式。libc通常被用作the standard C library的簡寫。

  libc也被用作一個標準C庫的實現的名字。在19世紀90年代早期,Linux核心的開發者把glibc 1.x獨立了出來 (forked glibc),並把它稱為”Linux libc”,也簡稱為libc。Linux libc主要釋出了2, 3, 4, 5四個版本。

  1997年,FSF釋出了glibc 2.0,它對POSIX標準有更好的支援,並且程式碼的可移植性更好。因此,現在所有主要的Linux發行版都是使用glibc

  Linux libc的最後的so-name是libc.so.5。因此後來的glibc 2.x使用的so-name是libc.so.6。

網路資訊服務(Network Information Service, NIS)
  NIS也曾被稱YP (Yellow Pages),它是一個基於RPC (Remote Procedure Call Protocol) 的客戶機/伺服器系統,允許一個NIS域中的一組機器共享一系列配置檔案。在NIS環境中,有主伺服器、從伺服器和客戶機三種類型的主機。伺服器的作用是充當主機配置資訊的中央資料庫。主伺服器上儲存著這些資訊的權威副本,而從伺服器則是儲存這些資訊的冗餘副本。客戶機依賴於伺服器向它們提供這些資訊。

DNS Resolver
  一個域名 (Domain Name) 由一個或多個標籤 (label) 組成,標籤之間用點隔開。最右端的標籤代表頂級域 (top-level domain,TLD)。DNS (Domain Name System, 域名解析系統) 是網際網路的一項核心服務,它是一個分散式層次化的系統,能夠將域名和IP地址相互對映。DNS通過允許一個域名伺服器把它的一部分域名解析服務委託給子伺服器而實現了一種層次化的域名空間。DNS由解析器 (Resolver) 和域名伺服器兩部分組成。

  DNS系統的客戶端被稱為DNS解析器 (DNS Resolver)。在Linux系統上,解析器並不是特指某個應用程式,而是指解析器庫。這個庫包含了標準C庫中的一系列函式,最主要的兩個函式是gethostbyname()gethostbyaddr()。可以對DNS解析器進行配置,使得它們查詢/etc/hosts中的資訊、查詢DNS伺服器或者使用網路資訊服務系統的配置資訊。libc使用/etc/host.conf配置檔案;glibc使用/etc/nsswitch.conf配置檔案。

  /etc/host.conf中主要的選項有:(1) order指定域名解析的查詢順序,其中hosts表示/etc/hosts配置檔案;bind表示查詢DNS伺服器;nis表示查詢NIS系統的配置資訊。(2) multi [on|off]指定/etc/hosts中的主機是否可以有多個IP地址。

  /etc/nsswitch.conf是名字服務開關 (name service switch) 的配置檔案,其中對應DNS解析器的資料庫名字是hosts:。它的主要選項有:(1) dns表示使用DNS解析地址 (2) files表示使用/etc/hosts/etc/network配置檔案 (3) nis或nisplus。

  DNS伺服器在/etc/resolv.conf中配置。

ping
  ping命令用來測試網路上的一臺主機是否能夠連通。ping命令向目標主機發送ICMP (Internet Control Message Protocol) 回聲請求訊息然後等待目標主機的迴應,與此同時計算訊息從源主機到目標主機的往返時間 (round-trip time,RTT)。

問題解決
  首先,能夠ping域名對應的IP,顯然不可能是伺服器禁止了ping服務 (使用防火牆等)。host和nslookup能夠返回域名對應的IP地址,那麼/etc/resolv.conf中的DNS設定也是沒有問題的。

  事實上,使用ping命令處理一個域名的時候,是使用gethostbyname()函式返回對應的主機資訊 (參加原始碼); 而host和nslookup則是直接使用/etc/resolv.conf中的DNS伺服器。因此,需要檢視/etc/nsswitch.conf中的hosts:資料庫是否打開了dns選項。

相關推薦

apache搭的伺服器域名訪問, IP訪問不了的解決方法

加:ServerAlias * <VirtualHost *:80>     <Directory "c:/wamp/www/">         Options FollowSymLinks

Linux ubuntu/deepin關於 truffle:未找到命令 的解決方法

第一種:通過sudo npm install -g truffle可在其下方找到truffle所在資料夾,然後去這個資料夾將truffle檔案複製貼上到 /usr/local/bin 裡面。 第二種:通過命令列,ln -s /opt/node/bin/truf

Linux Ubuntu PING IPPING主機域名解決方法

------------------------------------------------------------------------------- ------------------------------------------------------------------------

Linux PING IP PING 主機域名解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ubuntu14/ubuntu16/centos7:解決可以ping ipping不通主機

最近裝了兩臺linux虛擬機器分別CentOS7和Ubuntu14,都裝了samba服務,檔案共享都正常,虛擬機器上網際網路也正常,能以ping 通區域網的ip,卻都ping不通主機名,其他電腦(windows/linux)都能ping 通這兩臺虛擬機器的主機名

VM裡面的ubuntu 可以上網, PING不通!

        這兩天很鬱悶。 ubuntu 裡面可以用 firefox上網,但是就是ping不通。後來終於解決了。把 本地連線的共享去了。就OK了。         然後終於可以很愉快地下載 ZYNQ的u-boot的原始碼了。開始編譯原始碼,偶爾也能分析一下。附錄下載程式

Linux環境下ping命令出現“Destination host unreachable”解決方法

在一次測試過程中主機和單板機通過網線相連,在主機終端中通過minicom工具進行配置後,上電單板機,正常啟動後網口顯示已經連線。 接下來檢視主機和單板機的IP地址,(如果沒有IP則設定IP地址)然後用“ping”命令來測試網路是否通路。 出現“Destination hos

ubuntu下mysql不IP地址訪問的問題解決

1.mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';   (%) 表示所有ip    第1個root表示賬戶    第2個root表示密碼2.mysql>flush priv

Linux執行netstat命令的原因及解決辦法

伺服器是阿里雲的,這是我出的錯,使用netstate命令報 -bash: netstate: command not found 出現這個錯誤的原因:由於網路工具沒有安裝 使用以下命令安裝即可: yum install net-tools 執行命令: netstat -

linux伺服器可以訪問IP訪問不了域名地址

1、curl www.baidu.com報錯,curl 183.232.231.173可以 或者nslookup+域名,nslookup+IP 2、這個是因為linux伺服器沒有配置DNS域名伺服器地址導致的,linux系統裡會有/etc/resolv.con

64位linux執行32位程式,問題解決方案

問題由來 交叉編譯是嵌入式開發非常重要的(應該說是必須的)一個環節,但是最近在實體Linux機器上使用交叉編譯工具卻經常遇到一個問題:交叉編譯工具版本正確,安裝步驟正確,環境變數設定也正確,但是在執行arm-linu-gcc -v時卻一直報bash: /opt

Linux java.net.UnknownHostException找不到主機解決辦法

今天部署應用到Tomcat,發現啟動過程中有異常,驗證碼前臺出不來,以為是此異常導致的,後來解決了java.net.UnknownHostException,登入頁面的驗證碼還是出不來不知是何問題。 詳細異常輸出 報錯方式:java.net.UnknownHostEx

Linux Ubuntu 下編譯Opencv c++專案的幾種方法

Table of Contents 4.瞭解 1.使用g++命令列 pkg-config引數方法 新建一個cpp檔案:main.cpp,功能是輸入一幅影象檔案的路徑並顯示該影象: #include<opencv2/opencv.hpp>

centos 6 下 ping: unknown host www.baidu.com” 解決方法(有效)

這兩天需要用到虛擬機器,選擇net 模式但是虛擬機器一直ping 不同外網, 以下是摸索出來的解決方案,親測有效。 如果某臺Linux伺服器ping不通域名, 如下提示: [[email protected] ~]# ping www.baidu.

Linux-Ubuntu環境安裝Nginx和配置二級域名跳轉

前言:Centos和ubuntu環境的區別,可以檢視下nginx的配置檔案wheresi nginx顯示不同的目錄結構,本文主要講

訪問 windows2008發布的網站 解決方法

無法 右鍵 商品 get 幫助 ont 方法 bsp -c 在windows2008發布的網站,經常會遇到網站無法訪問的情況,當問及客服時,經常會告知,操作系統默認不打開80端口,請先確定80是否打開並確定沒有被占用。那麽,我們該如何打開80端口呢?

ubuntu下/boot空間被占滿的解決方法

image strong 釋放 方法 網上 目錄 init election dpkg 我這個方法是直接刪除或移除的方法,網上有采用 查看dpkg --get-selections|grep linux 安裝的內核包 然後卸載不需要的內核 sudo apt-get remo

ubuntu不支持rpm安裝軟件解決方法

rpm alien 以前經常使用的是redhat,習慣使用rpm方法安裝軟件。最近發現Ubuntu系統居然不支持rpm方法安裝軟件,提示信息如下:[email protected]/* */$ rpm -i package.rpm The program ‘rpm‘ is currentl

(轉)Ubuntu無法找到add-apt-repository問題的解決方法

data ref prop repos bind clas install 網上 csdn 原文 網上查了一下資料,原來是需要 python-software-properties 於是 apt-get install python-software-

Linux mint界面過小無法安裝(解決方法

log 無法顯示 tin splay 安裝 isp 分區 src es2017 安裝Linux mint時,到了分區的時候,有時候會出現界面過小(就是你點擊不到確定鍵): 大家可以看到下面的確定鍵無法顯示,導致無法安裝。網上查了一下都是清一色的下載vwware tool插