Linux網(wǎng)絡(luò)故障診斷方法
由于實現(xiàn)網(wǎng)絡(luò)服務(wù)器的層次結(jié)構(gòu)比較多,因此當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時,解決起來比較復(fù)雜。下面由我來為大家詳細介紹Linux系統(tǒng)中可能出現(xiàn)的一些網(wǎng)絡(luò)問題,如網(wǎng)卡硬件問題、網(wǎng)絡(luò)配置問題、驅(qū)動程序問題,以及網(wǎng)絡(luò)層、傳輸層、應(yīng)用層問題等。
網(wǎng)卡故障可以分為硬件故障和軟件故障,判斷硬件故障最簡單的方法是把該網(wǎng)卡插到其它計算機上使用,如果還是老毛病則網(wǎng)卡損壞,否則網(wǎng)卡正常。實際情況下,大部分網(wǎng)卡出現(xiàn)的故障都屬于軟件故障,軟件故障一般分為兩類:一類為設(shè)置故障;一類為驅(qū)動程序故障。
診斷網(wǎng)卡故障
[root@localhost ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[root@localhost ~]#
以上命令列出了引導(dǎo)信息中包含eth字符串的行,如果出現(xiàn)類似與“eth0:link up”的提示,表示Linux已經(jīng)檢測到了網(wǎng)卡,并處于正常工作狀態(tài)。還有一條lspci命令可以列出系統(tǒng)檢測到所有PCI設(shè)備,如果使用的網(wǎng)卡是PCI總線的,應(yīng)該能看到這塊網(wǎng)卡的信息。最后可以用ethtool查看以太網(wǎng)的鏈路連接是否正常。
以上命令列出了引導(dǎo)信息中包含eth字符串的行,如果出現(xiàn)類似與“eth0:link up”的提示,表示Linux已經(jīng)檢測到了網(wǎng)卡,并處于正常工作狀態(tài)。還有一條lspci命令可以列出系統(tǒng)檢測到所有PCI設(shè)備,如果使用的'網(wǎng)卡是PCI總線的,應(yīng)該能看到這塊網(wǎng)卡的信息。最后可以用ethtool查看以太網(wǎng)的鏈路連接是否正常。
[root@localhost ~]#ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected:yes
[root@localhost ~]#
如果看到“Link detected:yes”一行,表明網(wǎng)卡也對方的網(wǎng)絡(luò)線路連接是正常的。
網(wǎng)卡驅(qū)動程序
在RHEL 6中,需要先查看或者設(shè)置/etc/modeprobe.cong文件,它包含了有關(guān)模塊的安裝和別名信息。
[root@localhost ~]#more /etc/modeprobe.cong
alias scsi_hostadapter mptbase
...
alias eth0 pcnet32
[root@localhost ~]#
以上顯示中,最后一行“alias eth0 pcnet32”表示為pcnet32定義了一個別名eth0,也就是說,目前使用的以太網(wǎng)卡接口eth0對應(yīng)的模塊是pcnet32,可以使用一下命令當(dāng)前系統(tǒng)裝載的模塊中是否有pcnet32模塊。
[root@localhost 2.6.18-8.e15]#lsmod | grep pcnet32
pcnet32 35269 0
mii 9409 1 pcnet32
[root@localhost 2.6.18-8.e15]#
可以發(fā)現(xiàn),pcnet32已經(jīng)安裝。因此,如果網(wǎng)卡已經(jīng)被Linux檢測到,但執(zhí)行“ipconfig -a”命令時卻看不到eth0接口,可以按照以上方法把網(wǎng)卡的驅(qū)動程序模塊找到,再看看這個模塊是否已經(jīng)安裝。
診斷網(wǎng)絡(luò)層問題
網(wǎng)絡(luò)層問題診斷方法很簡單,就是直接ping外網(wǎng)的某一個域名或者IP,能正常連通的,則說明網(wǎng)絡(luò)層沒有問題。
引起ping不同的原因很多,可能會是網(wǎng)絡(luò)線路、網(wǎng)絡(luò)設(shè)置、路由和ARP等問題。建議先ping一下網(wǎng)關(guān),看是否能通,如果與網(wǎng)關(guān)能通,一般就表明網(wǎng)絡(luò)線路、自己機子的網(wǎng)絡(luò)設(shè)置和ARP都沒有問題?梢酝ㄟ^命令“route -n”顯示路由表,然后得到網(wǎng)關(guān)的地址。如果路由表中沒有設(shè)置默認網(wǎng)關(guān),則表明路由設(shè)置有問題,此時需要設(shè)置默認網(wǎng)關(guān)。
有時,局域網(wǎng)內(nèi)存在ARP攻擊或者其它原因,使本機ARP緩存中的網(wǎng)關(guān)IP的MAC地址是錯誤的,這樣也會造成與網(wǎng)關(guān)ping不通。此時,可以使用“arp -d <網(wǎng)關(guān) IP>”命令刪除網(wǎng)關(guān)的ARP條目,或者通過“arp -a <網(wǎng)關(guān) IP><網(wǎng)關(guān) MAC>”命令設(shè)置靜態(tài)ARP條目。
診斷傳輸層和應(yīng)用層問題
診斷傳輸層和應(yīng)用層的故障最有效的一種手段是使用抓包工具抓取數(shù)據(jù)包進行分析。在Linux中,默認提供了tcpdump工具,利用它可以抓取所有訪問本機或者從本機出去的數(shù)據(jù)包,并且可以通過規(guī)則只抓取感興趣的數(shù)據(jù)包。
與操作系統(tǒng)有關(guān)的一種可能的故障原因是防火墻配置不當(dāng)。在Linux中,默認情況下系統(tǒng)啟動時會啟用iptables防火墻,而且只放行少數(shù)幾個端口。所以當(dāng)在本機上配置了某種服務(wù)時,而這種服務(wù)需要通過TCP或UDP的某個端口才能訪問,則要求防火墻開啟相應(yīng)的端口,否則,其它主機將不能訪問本機的這種服務(wù)。
【Linux網(wǎng)絡(luò)故障診斷方法】相關(guān)文章:
1.Linux系統(tǒng)網(wǎng)絡(luò)故障診斷方法