- 相關推薦
Linux下網絡故障診斷
由于實現網絡服務器的層次結構比較多,因此當網絡出現故障時,解決起來比較復雜。以下是小編整理的關于Linux下網絡故障診斷,希望大家認真閱讀!
診斷網卡故障
[root@localhost ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[root@localhost ~]#
以上命令列出了引導信息中包含eth字符串的行,如果出現類似與“eth0:link up”的提示,表示Linux已經檢測到了網卡,并處于正常工作狀態。還有一條lspci命令可以列出系統檢測到所有PCI設備,如果使用的網卡是PCI總線的,應該能看到這塊網卡的信息。最后可以用ethtool查看以太網的鏈路連接是否正常。
以上命令列出了引導信息中包含eth字符串的行,如果出現類似與“eth0:link up”的提示,表示Linux已經檢測到了網卡,并處于正常工作狀態。還有一條lspci命令可以列出系統檢測到所有PCI設備,如果使用的網卡是PCI總線的,應該能看到這塊網卡的信息。最后可以用ethtool查看以太網的鏈路連接是否正常。
[root@localhost ~]#ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected:yes
[root@localhost ~]#
如果看到“Link detected:yes”一行,表明網卡也對方的網絡線路連接是正常的。
網卡驅動程序
在RHEL 6中,需要先查看或者設置/etc/modeprobe.cong文件,它包含了有關模塊的安裝和別名信息。
[root@localhost ~]#more /etc/modeprobe.cong
alias scsi_hostadapter mptbase
...
alias eth0 pcnet32
[root@localhost ~]#
以上顯示中,最后一行“alias eth0 pcnet32”表示為pcnet32定義了一個別名eth0,也就是說,目前使用的以太網卡接口eth0對應的模塊是pcnet32,可以使用一下命令當前系統裝載的模塊中是否有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]#
可以發現,pcnet32已經安裝。因此,如果網卡已經被Linux檢測到,但執行“ipconfig -a”命令時卻看不到eth0接口,可以按照以上方法把網卡的驅動程序模塊找到,再看看這個模塊是否已經安裝。
診斷網絡層問題
網絡層問題診斷方法很簡單,就是直接ping外網的某一個域名或者IP,能正常連通的,則說明網絡層沒有問題。
引起ping不同的原因很多,可能會是網絡線路、網絡設置、路由和ARP等問題。建議先ping一下網關,看是否能通,如果與網關能通,一般就表明網絡線路、自己機子的網絡設置和ARP都沒有問題。可以通過命令“route -n”顯示路由表,然后得到網關的地址。如果路由表中沒有設置默認網關,則表明路由設置有問題,此時需要設置默認網關。
有時,局域網內存在ARP攻擊或者其它原因,使本機ARP緩存中的網關IP的MAC地址是錯誤的,這樣也會造成與網關ping不通。此時,可以使用“arp -d <網關 IP>”命令刪除網關的ARP條目,或者通過“arp -a <網關 IP><網關 MAC>”命令設置靜態ARP條目。
診斷傳輸層和應用層問題
診斷傳輸層和應用層的故障最有效的一種手段是使用抓包工具抓取數據包進行分析。在Linux中,默認提供了tcpdump工具,利用它可以抓取所有訪問本機或者從本機出去的數據包,并且可以通過規則只抓取感興趣的數據包。
與操作系統有關的一種可能的故障原因是防火墻配置不當。在Linux中,默認情況下系統啟動時會啟用iptables防火墻,而且只放行少數幾個端口。所以當在本機上配置了某種服務時,而這種服務需要通過TCP或UDP的某個端口才能訪問,則要求防火墻開啟相應的端口,否則,其它主機將不能訪問本機的這種服務。
【Linux下網絡故障診斷】相關文章:
Linux下網絡故障的診斷09-26
Linux網絡故障診斷方法07-26
Linux系統網絡故障診斷方法09-22
網球比賽如何避免擊球下網08-06
Linux認證概念10-29
Linux認證優勢06-10
Linux認證考點06-25
Linux認證的概念09-09
學習Linux的忠告09-27