• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    淺談linux系統下常見的故障與處理方法 (3)

    發布時間:  2012/7/31 19:33:36

    sp;     Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:508961 errors:0 dropped:0 overruns:0 frame:0
      TX packets:508961 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:574086961 (547.4 MiB)  TX bytes:574086961 (547.4 MiB)
      從上面輸出可知,本系統有兩塊網卡,分別配置不同網段的IP地址,假定eth0通過映射的方式對外提供ssh連接服務,而eth1僅供局域網主機之間共享數據使用。
      現在的問題是,外界無法ssh遠程登錄到此系統,而網卡加載沒有問題,網卡IP設置也沒問題,接下來看看此系統的路由設置:
      [root@webserver ~]#  route
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      10.10.1.0       *               255.255.255.0   U     0      0        0 eth0
      192.168.200.0   *               255.255.255.0   U     0      0        0 eth1
      default         192.168.200.1   0.0.0.0         UG    0      0        0 eth1
      到這里,問題已經基本排查出來了:從route的輸出可知,linux的缺省路由是192.168.200.1,而192.168.200段的IP僅僅供局域網主機之間共享數據使用,沒有連接出去的訪問權限,因而,外界無法連接到linux系統,也是理所當然的事情了。
      定位了問題,解決方法很簡單,刪除192段的缺省路由,然后增加10段的缺省路由即可:
      [root@webserver ~]# route delete default
      [root@webserver ~]#route add default gw 10.10.1.254
      此時外界就可以通過ssh服務遠程連接到linux系統了。
      3.檢查DNS解析文件是否設置正確
      在Linux系統中,有兩個文件用來指定系統到哪里尋找相關域名解析的庫。分別是文件/etc/host.conf和/etc/nsswitch.conf。
      /etc/host.conf文件指定系統如何解析主機名,Linux通過域名解析庫來獲得主機名對應的IP地址。下面是RedHat Linux安裝后缺省的/etc/host.conf內容:
      order hosts,bind
      其中,order指定主機名查詢順序,這里表示首先查找/etc/hosts文件對應的解析,如果沒有找到對應的解析,接著就根據/etc/resolve.conf指定的域名服務器進行解析。
      /etc/nsswitch.conf文件是由SUN公司開發的,用于管理系統中多個配置文件查詢的順序,由于nsswich.conf提供了更多的資源控制方式,nsswich.conf文件現在已經基本取代了hosts.conf,雖然LINUX系統中默認這兩個文檔都存在,但實際上起作用的是nsswitch.conf文件。
      nsswitch.conf文件每行的配置都以一個關鍵字開頭,后跟冒號,緊接著是空白,然后是一系列方法的列表。
      例如這段信息:
      hosts:   files dns
      表示系統首先查詢主機庫文件,如果沒有找到對應的解析,接著會去DNS配置文件指定的DNS服務器進行解析。
      清楚了linux下域名解析的原理和過程,我們就可以根據這兩個文件的設定,確定解析的順序,從而判斷出域名解析可能出現的問題。
      4.檢查服務是否正常打開
      在一個應用出現故障時,必須要檢查的就是服務本身,比如服務是否開啟,配置是否正確等等,檢查服務是否正確打開,分為兩步,第一步是查看服務的端口是否打開:
      例如,我們不能用root用戶ssh登錄到192.168.60.133這臺linux服務器,首先檢查sshd服務的22端口是否打開:
      [root@localhost init.d]# telnet 192.168.60.133 22
      SSH-2.0-OpenSSH_4.3
      這個輸出表示192.168.60.133的22端口對外開放,或者可以說sshd服務是處于打開狀態。如果沒有任何輸出,可能是服務沒有啟動,或者服務端口被屏蔽。
      也可以在服務器上通過netstat命令檢查22端口是否打開:
      [root@localhost xinetd.d]# netstat -ntl
      tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
      tcp        0      0 :::80                       :::*                        LISTEN
      tcp        0      0 :::22                       :::*                        LISTEN
      可以看到,22端口在服務器上是打開的,同時,服務器上打開的還有3306、80端口。
      接著進行第二步的檢查,既然服務已經打開,可能是sshd服務配置的問題,檢查sshd服務端配置文件/etc/ssh/sshd_config,發現有下面一行信息:
      PermitRootLogin no
      由此可知是ssh服務端配置文件限制了root用戶不能登錄系統,如果需要root登錄系統,只需更改為如下即可:
      PermitRootLogin yes
      到這里為止,我們通過對端口和服務配置文件的層層檢查,最終找到了問題的根源。需要說明的是,這里的重點不是講述如何讓root登錄linux系統,而是要通過這個例子讓讀者學會處理類似問題的思路和方法。
      5.檢查訪問權限是否打開
      (1)檢查系統防火墻iptables的狀態
      當某些服務不能訪問時,一定要檢查是否被linux本機防火墻iptables屏蔽了,可以通過iptables -L指令查看iptables的配置策略,例如我們不能訪問某臺linux服務器提供的www服務,通過檢查,系統網絡、域名解析都正常,并且服務也正常啟動,然后檢查了服務器的iptables策略配置,信息如下:
      [root@localhost ~]# iptables -L -n
      Chain INPUT (policy DROP)
      target     prot opt source               destination
      Chain FORWARD (policy ACCEPT)
      target     prot opt source               destination
      Chain OUTPUT (policy DROP)
      target     prot opt source               destination
      從上面的輸出可知,這個linux服務器僅僅設置了預設策略,而致命的是將INPUT鏈和OUTPUT鏈都設置為DROP,也就是所有外部數據不能進入服務器,服務器數據也不能出去,這樣的設置相當于沒有網絡。
      為了能訪問這臺服務器提供的www服務,增加兩條策略即可:
      [root@localhost ~]#iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
      [root@localhost ~]#iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
      這樣以來,internet上的其他人就能訪問我們的www服務了。
      (2)檢查selinux是否打開
      在前面的章節,我們已經講述過selinux的含義和功能,它可以最大限度地保證Linux系統的安全,但是selinux有時也會給linux下軟件的運行帶來一些問題,這些問題大部分是對selinux不了解造成的,為了迅速定位問題,最簡單的方法是先關閉selinux,然后測試軟件運行是否正常,這不是個好方法,但是對于判斷問題往往是很有用的,selinux是個很好的安全訪問控制軟件,可是如果你還不能熟練運用selinux訪問控制策略的話,還是建議將它暫時關閉,等到對linux有了更深入的認識后,再開啟selinux不失為一個明智的策略。
      6.檢查局域網主機之間聯機是否正常
      通過上面5步的檢查,linux系統自身的問題已經基本排除,接下來需要擴展到linux主機之外的網絡環境,檢查網絡之間的連通是否存在故障,可以先通過ping命令測試局域網主機之間的連通性,然后ping網關,檢測主機到網關的通信是否正常。
      任何網絡故障的出現,都是有原因的,只要我們根據上面給出的解決問題流程,逐一排查,99%的問題都能得到很好的解決。

    億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
       聯系:億恩小凡
       QQ:89317007
       電話:0371-63322206


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線