1. 程式人生 > >linux學習,網絡故障排查

linux學習,網絡故障排查

The eth0 server nmap LV 80端口 網卡驅動 作用 內核

.當linux操作系統產生網絡故障時,應先從硬件到軟件/,
1,檢查網線、網卡。
到機房裏檢查網線兩端是否都亮燈,普通服務器的話應該是綠燈常亮為正常,交換機綠燈閃爍表示正在傳輸數據。
也可以通過命令ifconfig eth0 / ethtool eth0 來查看某一網卡的鏈路是否物理連通。

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的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間。星號表示防火墻封掉了ICMP的返回信息。大家感興趣可以挨個百度下顯示的ip,比如我用的是世紀互聯提供的公共DNS(114.114.114.114),那麽上圖中211.99.171.25一查就是世紀互聯的網關。
6.接下來要檢查的是遠端主機的服務端口是否打開。可以用telnet和nmap來檢查,沒有這兩個工具的話自行yum安裝。比如我們要看下百度的80端口是否打開了:

狀態STATE是open表示開啟,如果是filtered表示被防火墻過濾了,大家可以試下百度的22端口,肯定是filtered狀態。
也可以查看自身的端口有沒有打開,不多舉例了。自身端口用的比較多的命令是netstat。

7.如果網絡還有問題的話就要檢查iptables策略和SELinux了。定位問題前最好將SELinux關了,用iptables -L可查看iptables的規則。

linux學習,網絡故障排查