本文的一個思路:windows
1、網絡排錯的必備條件服務器
2、網絡排錯的基本思路網絡
3、網絡排錯詳細步驟架構
4、最後重要說明ide
1、網絡排錯的必備條件測試
爲何還要必備條件?由於這裏所講的網絡排錯並不只僅是停留在某一個小小命令的使用上,而是一套系統的方法,若是沒有這些條件,我真的不能保證下面講的這些你能夠聽得懂,而且能運用到實際當中,因此仍是先看看這些基礎的條件吧。網站
1.熟悉OSI七層模型與TCP/IP協議棧spa
這應該是網絡排錯要知道的最基本的知識了。
操作系統
不管是OSI七層模型仍是DoD模型,都是用來描述網絡通訊的一個過程,以讓咱們對網絡數據的發送和接收有一個大體的過程。OSI七層模型對應OSI七層模型的協議,DoD模型對應DoD模型的協議,也就是TCP/IP協議棧。代理
TCP/IP 協議棧裏面的協議就顯得十分重要了,好比DNS、TCP、UDP、IP、ICMP、ARP,這些最基本的應該得知道吧,咱們不須要有像《TCP/IP協議 棧》中說得的那麼細,但至少,對於這些協議的基本功能咱們是必須得要知道的,我想這些就不是我一兩名能夠說清楚的了,仍是那句話,本身百度一下吧。
2.瞭解網絡通訊的基礎設備和其對應的OSI層次
像 交換機、三層交換機、路由器、防火牆這些最基本的網絡設備應該要有些瞭解,尤爲是它們對應的OSI層次以及做用,好比普通的二層交換機對應OSI七層模型 中的數據鏈路層,它能夠隔絕衝突域,同時可能經過虛擬局域網技術(VLAN)來隔絕廣播域,二層交換機經過二層地址即MAC地址來實現數據幀的轉發;再比 如路由器,它對應網絡層,能夠提供路由尋址的功能等等。
也許並不須要瞭解得那麼細,但大概的一個過程我想仍是應該要知道的。
3.瞭解中小型企業網絡的基本架構
其實就是要知道上面所說的那些網絡設備通常是怎麼鏈接起來的,若是在實際環境中排錯,應該就要知道當前網絡的一個基本架構狀況。
這裏簡單提一下,通常中小型企業網絡的基本架構都是這樣的:接入層--匯聚層--核心層--網絡出口。
下面給個圖:
若是網絡環境比較龐大,匯聚層和核心層都會有,像這裏的話,就直接沒有匯聚層,不過思想是同樣的。下面講的排錯其實都是針對用戶PC來講明的,事實上,數據中心中的網絡排錯也是相似的。無論網絡環境多麼複雜,其實簡化下來跟這個都是差很少的。
4.知道經常使用的網絡排錯命令
若是用戶使用的是Windows操做系統,那麼下面的這些命令就很重要了:
ipconfig | 查看計算機的IP 地址、子網掩碼和網關 |
ipconfig/all | 查看計算機的IP 地址、子網掩碼、網關和DNS 地址 |
ping | 測試主機之間的網絡連通性 |
nslookup | 請求域名對應的IP 地址,並以此測試DNS 地址是否可用 |
tracert -d | 路由追蹤,而且不作反向解析 |
若是使用的是Linux操做系統,那麼也有對應的相關命令。其實說到底就是要熟悉你所使用的設備,固然,在實際網絡排錯的過程當中,若是隻是爲了測試網絡通訊是否正常,你能夠把你本身熟悉的設備換上操做。
5.清楚知道網絡排錯的一個重要原則
網絡排錯,不就是要判斷網絡哪裏出了問題,所以,你就必需要知道數據的走向。
因此這個重要的原則是:關注數據的走向。
下面講的網絡排錯思路其實就是經過追蹤數據的走向來一步步縮小網絡故障點的,所以,時刻記住這一點很是很是重要!這也是爲何上面須要讓你瞭解中小型企業網絡的基本架構了。
2、網絡排錯的基本思路
基本思路以下,這跟網上的大多數人寫的應該是差很少的。
(1)檢查物理鏈路是否有問題
(2)查看本機IP地址、路由、DNS的設置是否有問題
(3)測試網關或路由器的通暢狀況。先測網關而後再測路由器,一級一級地測試
(4)測試ping公網ip的通暢狀況(平時要記幾個外部IP)
(5)測試DNS的通暢狀況,能夠直接ping網站地址
下面的第三部分,就針對上面的基本思路來進行詳細的說明。
3、網絡排錯詳細步驟
爲了更好的講述網絡排錯的過程和思路,假設咱們有下面的一個網絡環境:
(說明:雖然是假設,但實際上該網絡環境是博主經過GNS3聯動虛擬機和真實網絡架設起來的,因此是能夠真實參考的)
下面,咱們就以上面這個網絡環境爲例子,詳細介紹咱們的網絡排錯思路,每一步要怎麼作,每一步爲何要這樣作以及這樣作以後咱們能夠獲得什麼信息,都會作一個說明。
(1)檢查物理鏈路是否有問題
這一步是我我的認爲在作網絡排錯時必需要作的第一步!常常會聽朋友說,領導的電腦上不了網,須要過去排錯,搞了老半天,還發現不了問題,最後在幾經絕望之時,居然發現網線都沒接上電腦。這就真的是悲劇了,浪費了不少時間不說,這樣的網絡排錯思路原本就是有錯誤的。
由於也許不是每一個人均可以去機房查看交換機的接線狀況,因此這一步,咱們排查的重點範圍就應該放在以下面圖所示的地方:
在這一步,下面幾點是須要注意排查的:
1.確認電腦自己的網卡有沒有問題
2.確認接的網線有沒有問題
3.本機所鏈接的交換機(若是能夠去機房查看的話)
若是上面這幾點排查都沒有問題了,那麼就是該網絡環境中的其餘設備問題了。這一範圍的排查相對比較簡單,由於只涉及到物理鏈路的鏈接問題。
對於這種測試,能夠考慮使用測線器,但我的的建議是,拿一臺配置正確的筆記原本作測試也何嘗不可。
(2)查看本機IP地址、路由、DNS的設置是否有問題
上面第一步,物理鏈路的排查沒有問題了,也就是說,電腦接上網線以後,電腦有有反應了,能夠識別,可是網絡仍是不通,來到這一步,就應該先把注意的範圍放在電腦的設置上面了。
這上步,咱們關注的重點是:
1.IP地址設置
若是採用的是DHCP自動獲取的方法,那麼這時候只須要看本身本機的設置上有沒有開啓自動獲取IP的設置以及有沒有開啓相關的服務;
若是用的是靜態IP,那麼就必需要注意IP地址的填寫有沒有錯(通常網絡管理人員給的)、IP地址的子網掩碼有沒有問題(這很重要,對於靜態IP,不少人在這裏設置錯誤,建議是,最好把IP地址、VLSM這方面的知識學一下)。
通常能夠用下面的命令查看:
1
2
3
4
5
6
7
8
9
10
11
12
|
C:\Users\XpLeaf>ipconfig
Windows IP 配置
以太網適配器 本地鏈接:
鏈接特定的 DNS 後綴 . . . . . . . :
本地連接 IPv6 地址. . . . . . . . : fe80::4cf8:896f
IPv4 地址 . . . . . . . . . . . . :
192.168
.
2.1
子網掩碼 . . . . . . . . . . . . :
255.255
.
255.0
默認網關. . . . . . . . . . . . . :
192.168
.
2.254
|
相關的設置能夠在本身的計算機環境上面查看了。
2.路由設置
對於服務器、PC,通常是指默認網關的設置了;對於路由器自己或三層交換機,那就是靜態路由或動態路由的設置問題了。
3.DNS設置
主要是要確保所設置的DNS服務器地址到底有沒有提供域名解析服務或者是否出現了故障,至於如何判斷,後面會給出方法,這裏關注的是,你得設置一個正確的DNS服務器地址或能夠自動獲取。在windows上面你能夠經過下面的命令查看:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
C:\Users\XpLeaf>ipconfig/all
Windows IP 配置
主機名 . . . . . . . . . . . . . : XpLeaf-PC
主 DNS 後綴 . . . . . . . . . . . :
節點類型 . . . . . . . . . . . . : 混合
IP 路由已啓用 . . . . . . . . . . : 否
WINS 代理已啓用 . . . . . . . . . : 否
以太網適配器 本地鏈接:
鏈接特定的 DNS 後綴 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) PRO/
1000
MT Network Connection
物理地址. . . . . . . . . . . . . :
00
-0C-
29
-7D-
41
-E5
DHCP 已啓用 . . . . . . . . . . . : 否
自動配置已啓用. . . . . . . . . . : 是
本地連接 IPv6 地址. . . . . . . . : fe80::4cf8:896f:7d55:
1432
%
11
(首選)
IPv4 地址 . . . . . . . . . . . . :
192.168
.
2.1
(首選)
子網掩碼 . . . . . . . . . . . . :
255.255
.
255.0
默認網關. . . . . . . . . . . . . :
192.168
.
2.254
DHCPv6 IAID . . . . . . . . . . . :
234884137
DHCPv6 客戶端 DUID . . . . . . . :
00
-
01
-
00
-
01
-1C-
13
-6E-0D-
00
-0C-
29
-7D-
41
-E5
DNS 服務器 . . . . . . . . . . . :
202.116
.
145.145
202.96
.
128.86
|
(3)測試網關或路由器的通暢狀況。先測網關而後再測路由器,一級一級地測試
在上面的網絡環境中,在網絡通的狀況下,咱們在電腦上使用命令tracert -d命令,會獲得下面的結果:
1
2
3
4
5
6
7
8
9
|
C:\Users\XpLeaf>
trace
rt -d www.baidu.com
經過最多
30
個躍點跟蹤
到 www.a.shifen.com [
180.97
.
33.108
] 的路由:
1
12
ms
27
ms
16
ms
192.168
.
2.254
2
76
ms
107
ms
126
ms
172.16
.
13.3
3
59
ms
95
ms
93
ms
192.168
.
137.1
……這裏就省略輸出了
|
經過這個測試結果,咱們能夠清楚地知道電腦在訪問互聯網時,數據的走向狀況:
根據這個數據走向,咱們就能夠獲得一個重要的思路,就是根據數據走向來檢測網絡的通暢狀況!所以,咱們能夠分兩步:
1.先測試電腦到網關192.168.2.254的通暢狀況
咱們能夠在本身的電腦上本身ping網關的地址,看是否有響應:
1
2
3
4
5
6
7
8
9
10
11
12
|
C:\Users\XpLeaf>ping
192.168
.
2.254
正在 Ping
192.168
.
2.254
具備
32
字節的數據:
來自
192.168
.
2.254
的回覆: 字節=
32
時間=7ms TTL=
255
來自
192.168
.
2.254
的回覆: 字節=
32
時間=18ms TTL=
255
來自
192.168
.
2.254
的回覆: 字節=
32
時間=15ms TTL=
255
來自
192.168
.
2.254
的回覆: 字節=
32
時間=16ms TTL=
255
192.168
.
2.254
的 Ping 統計信息:
數據包: 已發送 =
4
,已接收 =
4
,丟失 =
0
(
0
% 丟失),
往返行程的估計時間(以毫秒爲單位):
最短 = 7ms,最長 = 18ms,平均 = 14ms
|
通常這樣的判斷方法是比較快的,但有時候,不管怎樣ping都不能,那麼則可能有如下的幾種狀況:
a.網關設備作了禁止ping的設置
b.網關接口或網關設備出現故障
對於a,通常不多會在這些設備在作ping的限制操做,由於目前很網絡設備如路由器或交換機的監控,都是經過ping操做來完成的。ping通192.168.2.254網關後,再ping一下172.16.13.1以確認電腦到整個網關設備都沒有問題。
對於ping不通的時候,我我的還建議在電腦上執行以下操做:
1
2
3
4
5
6
7
8
9
|
C:\Users\XpLeaf>arp -a
接口:
192.168
.
2.1
---
0xb
Internet 地址 物理地址 類型
192.168
.
2.254
cc-
03
-0a-1c-
00
-
00
動態
192.168
.
2.255
ff-ff-ff-ff-ff-ff 靜態
224.0
.
0.22
01
-
00
-5e-
00
-
00
-
16
靜態
224.0
.
0.252
01
-
00
-5e-
00
-
00
-fc 靜態
239.255
.
255.250
01
-
00
-5e-7f-ff-fa 靜態
|
即查看電腦自己有沒有獲取到網關的MAC的地址,顯然,若是沒有網關的MAC地址,那也是不可能ping通網關的,在排除了前面電腦設置的問題後,你能夠猜想是網關設備出了問題,這時就能夠聯繫網絡工程師對網關設備進行測試了。
2.測試到其它路由器的通暢狀況
前面一步沒有問題了,也就是電腦到網關通訊正常了,再測試網關到出口路由器的通暢狀況:
這裏,咱們使用tracert -d命令就能夠了:
1
2
3
4
5
6
7
8
9
|
C:\Users\XpLeaf>
trace
rt -d
172.16
.
23.3
經過最多
30
個躍點跟蹤到
172.16
.
23.3
的路由
1
7
ms
9
ms
20
ms
192.168
.
2.254
2
92
ms
79
ms
89
ms
172.16
.
12.2
3
62
ms
47
ms
46
ms
172.16
.
23.3
跟蹤完成。
|
固然,若是發現不通,那麼則多是下面的狀況:
a.網關設備與路由器之間的物理鏈路問題
b.網關設備與路由器之間的設置問題,好比路由協議、接口配置之類的
出現上面的狀況,那就是網絡工程師的問題了,固然,若是你是網絡工程師,應該要立刻查看一下設備的狀態,看是否是設備哪裏出現問題了。
上面的步驟完成了,假設你的出口路由器設置是沒有問題的,好比NAT與默認路由等的設置,那麼咱們大體能夠知道,內網的一個基本通訊是正常的(至少你的電腦和出口路由器的通訊沒問題),咱們就要看看電腦到底能不能訪問互聯網了。
(4)測試ping公網ip的通暢狀況(平時要記幾個外部IP)
來到這一步的時候,就說明前面三步是沒有問題的,也就是說,本地局域網絡的通訊是正常的,這時要作的就是判斷本地局域網絡與外網(公網)之間的通訊有沒有問題了:
這裏採起的是直接ping公網地址的方法,是爲了排除DNS的影響(萬一你的DNS設置又有問題),至於要ping什麼樣的公網地址,我的建議是,能夠ping一些沒有禁止ping的公共DNS服務器地址,好比114.114.114.114和8.8.8.8的:
1
2
3
4
5
6
7
8
9
10
11
12
|
C:\Users\XpLeaf>ping
114.114
.
114.114
正在 Ping
114.114
.
114.114
具備
32
字節的數據:
來自
114.114
.
114.114
的回覆: 字節=
32
時間=52ms TTL=
61
來自
114.114
.
114.114
的回覆: 字節=
32
時間=127ms TTL=
87
來自
114.114
.
114.114
的回覆: 字節=
32
時間=96ms TTL=
82
來自
114.114
.
114.114
的回覆: 字節=
32
時間=100ms TTL=
74
114.114
.
114.114
的 Ping 統計信息:
數據包: 已發送 =
4
,已接收 =
4
,丟失 =
0
(
0
% 丟失),
往返行程的估計時間(以毫秒爲單位):
最短 = 52ms,最長 = 127ms,平均 = 93ms
|
這 樣以後,基本上就能夠肯定網絡是沒有問題的了。固然,這裏並無提到出口放置防火牆的狀況,實際上,思路是一致的,可是,你須要考慮的是,你的訪問數據有 沒有被防火牆給過濾掉,是數據出去的時候過濾了,仍是數據回來的時候過濾了?因爲還要涉及到防火牆的設置,這裏就再也不說起了,只是仍要注意這一點就是了。
固然,也不排除是ISP那邊的問題了,打電話去問問吧。
(5)測試DNS的通暢狀況,能夠直接ping網站地址
如題,能夠直接ping網站地址,看有沒有回顯IP地址,至於通不通是另一回事,只要能夠回顯IP地址,那麼DNS就沒有問題了,不過這裏仍然要說一下nslookup這個命令,這是一個很是好用的命令,我日常本身在網絡排錯時,基本上都會用到:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
C:\Users\XpLeaf>nslookup
默認服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
> www.baidu.com
服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
非權威應答:
名稱: www.a.shifen.com
Addresses:
180.97
.
33.107
180.97
.
33.108
Aliases: www.baidu.com
> www.taobao.com
服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
非權威應答:
名稱: www.taobao.com.danuoyi.tbcache.com
Address:
119.147
.
70.1
Aliases: www.taobao.com
> www.jd.com
服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
非權威應答:
名稱: www.jdcdn.com
Address:
183.56
.
147.1
Aliases: www.jd.com
|
固然也能夠像下面這樣使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
C:\Users\XpLeaf>nslookup www.baidu.com
服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
非權威應答:
名稱: www.a.shifen.com
Addresses:
180.97
.
33.108
180.97
.
33.107
Aliases:
C:\Users\XpLeaf>nslookup www.taobao.com
服務器: server1.gdut-dns.edu.cn
Address:
202.116
.
145.145
非權威應答:
名稱: www.taobao.com.danuoyi.tbcache.com
Address:
119.147
.
70.1
Aliases: www.taobao.com
|
使用nslookup命令,做用有二:
1.幫你測試你設置的DNS服務器有沒有問題
2.在不考慮DNS服務器是否智能的前提下,你能夠根據回顯IP地址速度的快慢來大體判斷DNS服務器的優劣狀況
因此能夠充分利用nslookup命令了。
4、最後重要說明
其實基本上,一個相對完整的網絡排錯過程就應該如上面所說的了,不過,是基本上的,由於上面的講解,都幾乎是假定你是沒有權限進入機房查看網絡設備的狀況的。
事 實上,你是根本不須要照搬來進行上面的所有步驟的,在實際排錯的過程當中,可能你用到的只是其中的一小部分而已,畢竟,若是每次都這樣下來,沒有誰是不會瘋 掉的,由於一些很簡單的問題也要這樣折騰,那就是太浪費時間了!可是,上面的方法,只是提出一種網絡排錯的思路,但願按照這個思路能夠判斷出網絡的問題出 如今哪裏,至於如何去解決,這中間真的又涉及到太多太多的經驗問題(其實遇到問題能夠百度),
其實整個下來,我我的以爲,最重要的仍然不是技術自己,而是在網絡排錯過程中的一個思路,思路決定出路,這可讓本身在網絡排錯的過程當中時刻保持清醒的頭腦,這一點很重要!
本 人並不是是專攻網絡(曾折騰了一段時間而已)這一塊的,也就是並不是是網絡工程師(也不多是啦),只是在實際過程中要處理比較多的網絡故障,這一年多的時 間下來,也積累了勉強可以稱得上是經驗的經驗吧,寫此一文,便是本身做爲一個總結,也但願能夠幫助到有須要的朋友。
因爲技術和語言功底都十分有限,真心但願能夠多諒解和包涵,有不足不處還望指導一下,感激涕零!