當linux作業系統產生網路故障時,應先從硬體到軟體、從自身到全域性。
1,檢查網線、網絡卡。
到機房裡檢查網線兩端是否都亮燈,普通伺服器的話應該是綠燈常亮為正常,交換機綠燈閃爍表示正在傳輸資料。
也可以通過命令ethtool ethx來檢視某一網絡卡的鏈路是否物理連通。
其中, speed是當前網絡卡的速度,這是乙個千兆網絡卡;duplex顯示了當前網路支援全雙工;link detected表示當前網絡卡和網路的物理連線狀態,yes就是正常。通常網速和全/半雙工狀態是主機和網路協議商自動協商的,例如這裡第8行的 auto-negotiation。
2.確定網線是通的之後,再看物理網絡卡。
ifconfig可以看到已成功載入的網絡卡,用ethtool -i ethx可以看到網絡卡驅動。lspci可以看到所有連線到pci匯流排的裝置,lsmod顯示所有已載入的模組, 載入成功的模組也會在/proc/modules中顯示。一般情況下,成功載入網絡卡後,用ifconfig就可以看了。如果此時找不到網絡卡,那麼應該檢視物理網絡卡有沒有連線到pci匯流排上,lspci檢測不到的話很有可能就是網絡卡壞了。還有一種情況是沒有載入網絡卡模組,先去lspci裡找到對應廠商和型號:ethernet controller,再用
modprobe嘗試載入正確的模組,比如modprobe 3c509。如果出現錯誤,說明該模組不存在。這時候你應該找到正確的模組並且重新編譯。
3.網絡卡物理層沒有問題之後,再看網絡卡配置。用ifconfig就可以看到ip、掩碼等等,永久修改網絡卡資訊在/etc/sysconfig/network-scripts/ifcfg-ethx(有些linux發行版不一定是這個檔名,但路徑多差不多。它上一層中的network檔案是修改hostname的),這個檔案也是放入dns的正確地方。修改之後重啟network。
4.檢查自身路由表是否正確。用route -n檢視核心路由表
,通過route命令檢視核心路由,檢驗具體的網絡卡是否連線到目標網路的路由,之後就可以嘗試ping 閘道器,排查與閘道器之間的連線。如果無法ping通閘道器,可能是閘道器限制了icmp資料報,或者交換機設定的問題。乙個很常見的問題:兩塊網絡卡分別提供內網和外網服務,如果預設閘道器是內網網絡卡,那麼外網服務是訪問不到的。這時需要刪除再新增預設閘道器。用route delete/add default gw 命令。
現在自身問題已經檢查了一遍,看全域性。
5.首先看dns,在/etc/resolve.conf可看到指定網域名稱伺服器,但是這裡是不能修改的這個檔案又networkmanager自動產生,修改要去etc/sysconfig/network-scripts/ifcfg-ethx 。
光看是沒有用的,nslookup可以用來診斷dns伺服器。簡單使用:
server是本機所指向的dns伺服器位址,大家可以把自己的dns位址換成114.114.114.114試一試。
6.如果dns也沒有問題,接下來就要檢查是否可以正常路由到某一台主機,或者說當連線不到某一台遠端主機時,應該如何追蹤路由。
traceroute 是用來跟蹤從發出資料報的主機到目標主機之間所經過的閘道器的工具。
引數選項:
-i 指定網路介面,對於多個網路介面有用。比如 -i eth1 或-i ppp1等;
-m 把在外發探測試包中所用的最大生存期設定為max-ttl次**,預設值為30次;
-n 顯示ip位址,不查主機名。當dns不起作用時常用到這個引數;
也可以在檢查時排除dns的問題。
記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示乙個閘道器,我們看到每行有三個時間,單位是 ms,其實就是-q的預設引數。探測資料報向每個閘道器傳送三個資料報後,閘道器響應後返回的時間。
也可以檢視自身的埠有沒有開啟,不多舉例了。自身埠用的比較多的命令是netstat。
其中第一列是套接字通訊協議,第2列和第3列顯示的是接收和傳送佇列,第4列是主機監聽的本地位址,反映了該套接字監聽的網路;第6列顯示當前套接字的狀態,最後一列顯示開啟埠的程序。
7.如果網路還有問題的話就要檢查iptables策略和selinux了。定位問題前最好將selinux關了,用iptables -l可檢視iptables的規則。
涉及到網路的流量監控和效能評估問題,我會單獨再整理出一篇博文。
參考資料:
《高效能linux伺服器構建實戰--系統安全、故障排查、自動化運維與集群架構》
Linux 網路故障排查
要能連網,網路裝置首先必須保證處於工作狀態,如果網絡卡沒有開啟,則肯定不能上網的,假設我們使用eth0網絡卡上網,首先檢查該網絡卡是否處於up狀態,使用ip命令 sudo ip link ls eth0 輸出 2 eth0 mtu 1500 qdisc pfifo fast state up mod...
Linux 網路故障排查
1.第一步是要確認網絡卡本身是否工作正常?利用ping工具可以確認這點。輸入ping 127.0.0.1 然後看是否正常ping 通?這裡的127.0.0.1 被稱作主機的回環介面,是tcp ip協議棧正常工作的前提。如果ping 不通,一般可以證實本機tcp ip協議棧有問題,自然就無法連線到網路...
網路故障排查
wireshark抓包工具是一款開源的網路協議分析軟體。工能非常強大,對tcp udp進行抓包分析,是最適合的。如何確診是ip衝突 換乙個ip試試,換了ip之後,再ping原來的那個ip,如果有應答,就能確診是ip衝突。換了ip後,ping原來那個ip無應答,並不能確認不是ip衝突 因為arp表可能...