linux下ping不通問題的說明與解決(DNS配置丟失)


一、出現問題的原因

     最近由於linux需要使用外網,發現ping不通地址,經過一番查找分析后發現是DNS服務配置丟失,在這里有兩種方法可以解決該問題。

     

    1:你可以手動修改/etc/sysconfig/network-scripts/ifcfg-lo(這是我linux上的網卡,一般來說系統上第一塊網卡默認是/etc/sysconfig/network-scripts/ifcfg-eth0)的進行DNS配置,

 使用vim到/etc/sysconfig/network-scripts/ifcfg-lo修改添加如下:

  PEERDNS=no

  DNS1=192.168.1.1

  DNS2=192.168.1.2

  然后wq!保存退出,再使用vim指令在/etc/resolv.conf里添加配置(一說resolv.conf是一個link文件會隨着ifcfg-eth0里DNS配置自動修改):

  nameserver 192.168.1.1 

  nameserver 192.168.1.2

   2:使用dhclient指令自動獲取ip地址(其實原理是一樣的,下面詳細介紹第二種方法)

二、問題詳解

1:文件說明

  /etc/hosts           hostname對應的IP存檔

  /etc/resolv.conf  當需要解析域名時,讀取該文件獲取DNS 服務器IP

            resolv.conf的關鍵字主要有四個,分別是:

              nameserver    //定義DNS服務器的IP地址
              domain       //定義本地域名
              search        //定義域名的搜索列表
              sortlist        //對返回的域名進行排序

  /etc/nsswitch.conf   這個檔案決定先使用/etc/hosts還是/etc/resolv.conf的設定

  當電腦要訪問一個域名時,要將域名翻譯成IP地址。
  這個過程通常會先訪問/etc/hosts,看本地是否有對應的hostname -- IP記錄。
  如果沒有就去查詢DNS服務器,通過/etc/resolv.conf 得到dns服務器地址

  當在eth接口啟用DHCP后,本地resolv.conf文件將被修改,resolv.conf文件中的DNS地址將被改為從DHCP獲取到的地址。這種從DHCP獲得的DNS即是Peer DNS。                         啟用DHCP后即便修改/etc/resolv.conf,不久又恢復成原樣。

     如何解決這個問題?此時,你得要在 /etc/sysconfig/network-scripts/ifcfg-eth0 等相關檔案內,增加一行: PEERDNS=no,然后重新啟動網絡即可

2:使用dhclient指令自動獲取ip地址

       dhclient指令的使用:

    語法:dhclient(選項)(參數)
    選項:
      0:指定dhcp客戶端監聽的端口號;
      -d:總是以前台方式運行程序;
      -q:安靜模式,不打印任何錯誤的提示信息;
      -r:釋放ip地址。
   參數:
      網絡接口:操作的網絡接口
   實例:
      dhclient -r     #釋放IP
      dhclient        #獲取IP

使用dhclient指令獲取ip,在這里需要使用sudo權限進行操作
   

 

 這里普及一下sudo和權限的操作,sudo權限需要切換到root用戶進行授權
  a.你可以vim 進入 /etc/sudoers 找到如下位置進行增加:
  
在后面添加 NOPASSWD 則不需要輸入密碼

   b.修改文件或目錄的權限

     chmod u+-=rwx 文件名或者目錄
         g+-=rwx 文件名或者目錄
            o+-=rwx 文件名或者目錄

      (或用數字授權ugo=》7 5 1 rwx =》4 2 1)
    將sudoer添加寫權限: chmod u+w /etc/sudoers 
    追加如下內容:echo "hadoop ALL=(ALL)NOPASSWD;ALL">>/etc/sudoers
    收回寫權限:chmod u-w /etc/sudoers
 

       dhclient的指令詳解見: https://blog.csdn.net/u011857683/article/details/83722466

 

  3:重啟網絡服務:service network restart

  4:查看dns解析情況

       

 

三、結果

 1:再次ping一個地址:

       

2:我們再用cat指令查看/etc/resolv.conf 和/etc/sysconfig/network-scripts/ifcfg-lo的內容發現:

  1) /etc/resolv.conf里面多了個search(search 參數指定域名查找順序)和nameserver(本機的網關地址(路由器的地址))

  2)/etc/sysconfig/network-scripts/ifcfg-lo多了個BROADCAST(廣播地址)和ONBOOT=yes(設置為網卡自動開啟)

       

      問題已解決!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM