當前位置:
首頁 > 最新 > 帶你在網路世界裡飛-網路診斷

帶你在網路世界裡飛-網路診斷

前面說了很多網路底層方面的東西,大多都是原理,沒有具體說怎麼應用,可能理解起來比較費力,所以這篇文章咱就說說,當遇見網路問題,咱應該如何捋清思路吧。。。當然我也是結合鳥哥的書,然後修改成我自己的視角說的,還有很多網路問題我也沒遇到過,所以呢大家要隨機應變。

首先,大家要清楚一點,所有的問題一般都可以歸結為硬體和軟體的問題,在網路世界也是如此,也有硬體和軟體之分,比如硬體如網線,電腦,處理器,網卡等,軟體如系統,網卡驅動等。

咱先來看看一個網路架構圖:

先來說說網路中的硬體部分:網路設備,網線及布線方式等

如上圖,如果PC 3想要上網,需要先經過網線,交換器/集線器,NAT主機,ADSL數據機,ISP(Internet Service Provider,網路服務提供商)自己的機房交換器以及其他internet上面所有網路設備等。

這裡說說ADSL數據機,其原理是因為計算機內部的信息是由「0」和「1」組成的數字信號,而在電話線上傳遞的卻只能是模擬電信號。於是,當兩台計算機要通過電話線進行數據傳輸時,就需要一個設備負責數/模的轉換。這個數/模轉換器就是Modem。計算機在發送數據時,先由Modem把數字信號轉換為相應的模擬信號,這個過程稱為「調製」。經過調製的信號通過電話載波傳送到另一台計算機之前,也要經由接收方的Modem負責把模擬信號還原為計算機能識別的數字信號,這個過程稱為「解調」。正是通過這樣一個「調製」與「解調」的數/模轉換過程,從而實現了兩台計算機之間的遠程通訊。

這裡還需要注意,上圖顯示的數據機其實就是ADSL數據機,數據機只是港台的叫法,大陸還是叫做ADSL數據機的。

既然知道了網路的整個架構,那哪些硬體容易出問題呢?

---------------網線---------------

這裡需要知道網線也分為並行線和跳線,並不是所有的設備都能自動分辨跳線和並行線,因此必須要了解你自己的網路設備(Hub,交換機,數據機等)所支持的網線類型。

並行線和跳線的區別是,並行線就是咱們平時見的網線,兩端都有水晶頭那種,作用就是傳輸數據。而跳線相當於線路上的一個開關,當電壓或電流等異常時,會切斷電路,有點像單刀雙擲開關。。。

Hub是一個多埠的轉換器,在以Hub為中心設備時,當網路中某條線路產生了故障,會將故障線路的數據通過其他線路傳輸出去,從而不會影響其他線路的工作。

要注意網線的這些情況:

1,網線被截斷

2,網線過度扭曲造成訊號不良

3,自製網路接頭(如水晶頭,RJ-45跳線頭等)品質不良

4,網路接頭與網路設備(如Hub)接觸不良

其實網線就像平時我們常見的水管,只不過水管是用來傳輸水的,而網線是用來傳輸電信號數據的,當水管被過度扭曲或折斷會發生什麼,因此對於網線也基本是同樣道理,即扭曲或彎折都會影響數據傳輸的效率。。。

---------------網路設備---------------

如網卡,Hub,交換機,路由器等,常見以下問題:

1,網卡質量不佳,或與系統兼容性不佳

2,各網路接頭不佳,導致接觸不良,造成信號衰減

3,網路設備所在環境惡劣(如過熱)導致宕機

4,網路設備使用方法不當,造成功能衰減(如交換機經常插電斷電)

-------------設備配置規則-----------

各個設備都有一個最適合自己的配置,因此網路世界也是如此。如太長的網線使得信號衰減,導致網路聯機超時(如乙太網最長的支持距離,10BASE5 最長為500米),當然還有以下:

1,並行線和跳線傻傻分不清

2,網線過長,如乙太網CAT5e理論支持距離為90米,如果兩個Hub超過90米則信號傳輸就會出問題

3,雜訊干擾,如網線附近有很強的電磁信號干擾

4,區域網絡方面,節點或其他的設備太多。關於這個還有一個543原則,如下:

5個網段(segment),所謂網段是在物理連接上最靠近的一組計算機。在一個BNC(用於射頻信號的傳輸)網段內最多可接30台計算機,且網線總長不能超過185m。

4個增益器(repeater),其實就是信號放大器

3個計算機群體(population),也就是說前面提到的5個網段,不是每個網段都可以裝計算機,而是只能裝3個,其他2個不行。

所謂10BASE5:一種乙太網標準,該標準使用同軸電纜、速度為10Mbps的基帶區域網絡,在匯流排型網路中,最遠傳輸距離為500米。10代表傳輸速度為10Mbps,BASE指的是傳輸信號為基帶信號,5指的是單段大致的傳輸距離、使用單段最大傳輸距離為500米。電阻為50Ω的粗纜,最多可以通過中繼器/集線器連接5個網段,10BASE5的單段最大傳輸距離不會超過500米,最長距離可達2500米。

所謂CAT-5:指的是5類雙絞線(Category 5 cable),是一種雙絞線,並設計為可提供高速度、低噪訊比的信號傳輸線。這種傳輸線一般用在電腦網路的內部配線,如把電腦連接至乙太網、或電腦連接電腦、集線器連接路由器等。

當然,上面都是偏硬體方面的問題,網路布線方式也很重要,大家感興趣可以自行找一下相關資料。硬體問題的判定比較困難,一般需要藉助專業設備才可以,下面咱重點說說軟體問題。。。

所謂軟體問題的根源無非就是IP(包含dns伺服器的ip地址),路由,服務,防火牆設定等,細分的話,主要有以下幾類:

1,網卡的ip地址或netmask(子網掩碼)有誤。比如ip地址衝突,子網掩碼設置錯誤,網卡驅動出錯等。

2,路由的問題,最常見的問題是預設路由(default gateway)的ip地址有誤,路由介面不符等,導致數據包無法順利發送出去。

3,通信協議不兼容。經常發生在不同系統之間,比如window和linux之間等。

4,網路負載的問題,當同時有大量的數據包湧進伺服器或Hub或同一個網域中,就可能造成網路的停頓甚至宕機。另外,如果區網中有人使用BT(p2p軟體)或者有人中毒導致蠕蟲充滿整個區網,也會造成網路的停頓問題。其實就是一下子數據太多,處理不過來,伺服器懵逼了。。。

5,其他問題,比如UFW(Uncomplicated Firewall, 防火牆組件)把一些埠給屏蔽了;應用程序本身的bug問題;應用程序中用戶的網路參數設定等;以及不同的操作系統的兼容性等;

》》》步驟一:確定網卡驅動是否異常

因為數據包都是從網卡開始發起,因此網卡及驅動是否異常就是最先需要考慮的點。網卡是硬體,一般計算機廠商都會集成在主板上,不用考慮。主要是網卡驅動,有時候重裝系統後,就得重新安裝驅動才可以聯網。不知屏幕前的你安裝過系統沒,應該有印象吧。。。

那驅動到底是個什麼東西呢?咱知道網卡是硬體,而驅動則是支持這個硬體在計算機里正常使用的軟體。沒有驅動電腦就無法識別出主機裡面的網卡,如果你的網卡晶元是很著名的廠商生產的,並且裝著XP系統的話基本上就不用裝驅動了,因為系統自帶你的網卡驅動程序。除了網卡需要安裝驅動以外,音效卡,顯卡都需要安裝驅動的,還是那句話,如果系統自帶這些卡的驅動的話就會自動安裝上的,就可以不用單獨安裝。

那一台電腦里是否只有一個網卡呢?其實不是,電腦上的網卡分兩種模式,一種是集成在主板上,一種是通過PCI插槽擴展的。

再來看看什麼是PCI,即外部鏈接(Peripheral Component Interconnect)標準,或稱個人電腦介面(Personal Computer Interface),實際應用中簡稱為PCI,是一種連接電腦主板和外部設備的匯流排標準。一般PCI設備可分為以下兩種形式:

1,直接內置於主板上的集成電路,在PCI規範中稱作「嵌入設備」(planar device);

2,或者安裝在插槽上的擴充界面卡。

PCI匯流排現已被PCI Express(Peripheral Component Interconnect Express)和其他更先進的技術取代,這些技術現在已經被用於最新款的電腦中。PCI規範規定了該匯流排的物理尺寸(包括線寬)、電氣特性、匯流排時序和協議。該規範可從美國PCI-SIG協會購得。常見的PCI卡包括網卡、音效卡、數據機、電視卡和硬碟控制器等,另外還有USB和串列埠等埠。

如下圖是安裝擴充界面卡的插槽:

當然上圖主板上還集成了很多集成電路模塊。

既然知道了網卡是硬體,也知道了擴展網卡的方式,那有沒有終端命令來直接查看網卡的一些信息呢?

上面知道了PCI,其實在linux下lspci就可以查看所有PCI匯流排的信息,但是mac電腦下沒有這個命令。如下是lspci詳情:

lspci命令用於顯示當前主機的所有PCI匯流排信息,以及所有已連接的PCI設備信息。

下圖是我在Ubuntu虛擬機里得到的結果:

上面查看的數據是硬體的信息,如上圖紅色區域,即是乙太網卡,是Red Hat公司(Red Hat,中文譯為紅帽,是美國一家以開發、販售Linux包並提供技術服務為業務內容的企業,其著名的產品為Red Hat Enterprise Linux。)

那如何確定某個硬體被系統內核成功載入了呢?其實一個網卡是否工作異常,根據系統內核是否載入成功來判斷只是一方面,最終是否被成功載入需要根據網卡最終是否工作正常來判定,即內核是否給其分配一個網路代號,如en0。

那如何根據內核載入信息來判定?

dmesg命令被用於檢查和控制內核的環形緩衝區,也可以理解為dmesg命令是用來獲取內核日誌的。kernel會將開機信息存儲在ring buffer中。您若是開機時來不及查看信息,可利用dmesg來查看。開機信息保在在文件里。

如下圖是在Ubuntu虛擬機里查看內核日誌得到的結果:

上面的lspci是查看pci匯流排介面信息,dmesg是查看系統內核日誌的,如果想看具體某個模塊的詳細信息,則需要另外一個命令,即lsmod;

lsmod命令用於顯示已經載入到內核中的模塊的狀態信息。執行lsmod命令後會列出所有已載入系統內核的模塊。Linux操作系統的核心具有模塊化的特性,在編譯核心時,比須把全部的功能都放入核心。您可以將這些功能編譯成一個個單獨的模塊,待需要時再分別載入。

第一列是模塊的名稱,第二列是模塊的大小,第三列是依賴模塊的個數,第四列是依賴模塊的內容。其實這裡系統內核載入模塊的方式,和js編程里應用程序載入方式有很多相似之處。。。

通常在使用lsmod命令時,都會採用類似 這樣的命令來查詢當前系統是否載入了某些模塊。

以上步驟都做完以後,就需要驗證一下網卡是否成功載入了,而驗證網卡是否成功載入最可靠的方式,就是查看網卡的卡號信息了,可以用ifconfig命令。

ifconfig命令用於配置和顯示Linux內核中網路介面的網路參數。用ifconfig命令配置的網卡信息,在網卡重啟後或機器重啟後,配置就不存在了。因此要想將上述的配置信息永遠的存在電腦里,就需要修改網卡的配置文件了。

用ifconfig查看網卡的信息如下:

eth0表示第一塊網卡,其中表示網卡的物理地址,可以看到目前這個網卡的物理地址(MAC地址)是。

inet addr用來表示網卡的IP地址,此網卡的IP地址是,廣播地址,掩碼地址。

lo是表示主機的迴環地址,這個一般是用來測試一個網路程序,但又不想讓區域網或外網的用戶能夠查看,只能在此台主機上運行和查看的網路介面。比如把httpd伺服器指向迴環地址,在瀏覽器輸入127.0.0.1就能看到伺服器架設的web頁面了。但只是自己可以看到,區域網的其他主機或用戶無從知道,即使輸入同樣的也打不開,除非他們本地也啟動服務。

第三行:UP(代表網卡開啟狀態),RUNNING(代表網卡的網線被接上)

第四,五行:接收,發送數據包情況統計。

第七行:接收,發送數據位元組統計信息。

以上信息比較多,其實無非是想法知道內核是否正常載入了網卡,載入成功的標誌是有對應網卡的代號(如:eth0),並且有相關的網卡信息。通過lspci可以查看匯流排介面情況,dmesg是查看系統內核載入硬體的日誌情況,lsmod是查看系統載入的某個模塊的情況。ifconfig可以查看已經成功載入的網卡情況,當然還可以設置相關網卡的數據。

如果經過以上步驟都無法看到想要的網卡信息,就有可能需要在驅動程序上入手了,網卡驅動一般網卡服務商都有提供,到對應網站下載安裝即可。

當取得相關網卡的代號後,則可以用ifconfig來直接給指定的網卡一個網路地址試試,如:

然後再輸入ifconfig查看網卡信息,是否成功設置,如果可以看到,就可以用ping來檢測一下是否連通,如果有響應的話,表示這個網卡的設定應該是沒有問題啦。其實就是ping自己的ip,如果有響應就表示網卡正常工作。

ping命令是用來檢測主機之間網路的連通性,執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠程主機的網路功能沒有問題,就會回應該信息,因而得知該主機運作正常。但有時候,ping不通也不代表主機之間網路不通,有時候是因為伺服器或防火牆設置禁止ping的原因,因為ping也是需要主機線程的。。。

通過以上步驟,確認完了最重要的網卡信息之後,並且確定網卡是正常的之後,再接下來則是區域網絡內的網路連接情況了。

》》》步驟二:區域網絡內各項連接設備檢測

這個階段主要是偏硬體,因此再和大家說說以下幾個概念。。。

區域網(local area network,LAN),節點之間的傳輸距離較近,例如一棟大樓內或一個學校的校區內,可以使用較為昂貴的聯機材料,例如光纖或是高質量的網路線(CAT 6)等。網路速度較快,聯機質量好且可靠,因此可應用於科學運算的叢集式系統,分散式系統,雲端負荷分擔系統等。

廣域網(wide area network,WAN),傳輸距離較遠,例如城市與城市之間的距離,因此使用的聯機介質較為便宜,比如電話線就是一個簡單的例子,由於線材質量較差,因此網路速度較慢且可靠性較低一些,網路應用方面大多為類似email,ftp,www網頁等功能。

網上鄰居則是一個區域網內所有的主機,而組的話只是在區域網下再細分一個等級,比如一個學校組成一個區域網,但學校裡面還有很多專業,如果所有專業的主機都分散在一起,勢必不好查找對應專業主機上的資源,因此可以對不同的專業進行分組,這樣的話,如果想查找某個專業的資源,直接去網上鄰居下的對應分組就可以了。工作組就像一個自由加入和退出的俱樂部一樣,它本身的作用僅僅是提供一個房間,以方便網上計算機瀏覽共享資源。

對於工作組而言,計算機可以自由的加入和退出,但對於域來說不行,想要加入和退出域,都需要實行嚴格的管理。在對等網路模式下,任何一台電腦只要接入網路,其他主機都可以訪問其共享的資源。儘管對等網路上的共享文件可以加訪問密碼,但是非常容易被破解。

不過,在域模式下,至少有一台伺服器負責每一台聯入網路的電腦和用戶的驗證工作,相當於公司的門衛一樣,稱為域控制器(domain controller,簡稱DC)。域控制器中包含了這個域的賬戶,密碼和屬於這個域的計算機等信息構成的資料庫。當電腦連入網路時,域控制器首先要鑒別這台電腦是否屬於當前域,用戶使用的登錄賬號,密碼是否正確。如果以上信息有不一樣的,用戶就不能訪問伺服器上有許可權保護的資源。

網路節點一般指的是具有網路ip地址的設備(如:pc,linux伺服器,ADSL數據機,網路印表機等),但集線器Hub不是,因為其不具有ip地址,因此Hub不是節點。

網卡(network interface card,NIC),內建或者外插在主機上面的設備,主要提供網路聯機的卡,目前大多使用具有RJ-45接頭的乙太網網卡。一般一個主機上具有多個網卡,以滿足網路聯機的需求。

網路介面:利用軟體設計出來的網路介面,主要是提供網路地址ip的任務。一張網卡可以搭配多個網路介面,而每部主機內部其實也都擁有一個內部的網路介面,那就是loopback(lo)這個循環測試介面,也叫迴環介面。

網路形態或拓撲(topology):各個節點在網路上面的連接方式,一般說的是物理連接方式。比如透過一個中間連接設備,以放射狀的方式連接各個節點的一種形態,這就是一種拓撲。

網關(route)或通訊閘(gateway):具有兩個以上網路介面,可以連接兩個以上不同網段的設備。比如ip分享器(其實可視為路由器)就是一個常見的網關設備。

交換機分為兩種:廣域網交換機和區域網交換機。廣域網交換機主要應用於電信領域,提供通信用的基礎平台。而區域網交換機則應用於區域網絡,用於連接終端設備,如PC機及網路印表機等。

網橋比集線器(Hub)性能更好,集線器(Hub)上各埠都是共享同一條背板匯流排的。後來,網橋被具有更多埠、同時也可隔離衝突域的交換機(Switch)所取代。

網橋(Bridge)像一個聰明的中繼器。中繼器從一個網路電纜里接收信號, 放大它們,將其送入下一個電纜。相比較而言,網橋對從關卡上傳下來的信息更敏銳一些。網橋是一種對幀進行轉發的技術,根據MAC分區塊,可隔離碰撞。網橋將網路的多個網段在數據鏈路層連接起來。

網段:一般指一個計算機網路中使用同一個物理層設備(如集線器Hub等)能夠直接通訊的那一部分,通常使用同一物理層的設備之間必然通過相同的傳輸介質直接相互連接,但是兩組傳輸介質並非直接相連的網路設備,如果它們的傳輸介質通過工作在物理層的擴展設備,如中繼器和集線器等轉接連接,則仍然被視為同一物理層中的設備,是一個而非兩個網段。另外,工作在數據鏈路層或更高層的設備如網橋、交換機、路由器等等,由它們連接起來的兩組設備分別處於各自獨立的物理層,因此是兩個網段。

網橋實現兩個網段的橋接功能,同時也起到重發器的作用,即延長線路距離及信號再生和轉發。交換機原理上也工作在數據鏈路層,可實現多個網段的信息交換,網橋和交換機可以隔離兩個網段,可以防止在某一個網段的數據被無條件地廣播到另一網段,這是因為網橋接到數據幀後,判斷接收到的數據幀目的地址是否和源地址在同一網段,是的話,就不再轉發。交換機被稱為多埠網橋,交換機的每個埠可以連接一個網段。

以上解釋了很多關於區域網內網路設備名字,這樣便於我們分析問題。但以上的目的就是設法確定自己主機的ip和網卡沒有問題,加上內部區域網透過ping也沒有問題,則就要開始獲得可以對外聯機的ip參數,這個很重要。

》》》步驟三:取得正確的ip參數

那什麼叫取得正確的ip參數呢,我們知道要想順利的連接上internet的話,必須可以跟公網ip(public ip)進行溝通才行,但是國內大多還是ipv4版本的ip地址,又因為ip地址比較緊缺,ISP(網路服務提供商)為了減少ip地址的佔用,因此對於民用網路的情況,一般ISP分配的都是內網域名(private ip),這裡的內網是相對於ISP的,每個ISP下都有很多子的內網,因此處於不同的子網內,ip地址即使相同了也可以,但同一個子網不能相同,我們再用路由器在子網的基礎上又增加子網。

既然分配給用戶的ip地址是內網ip,那對於處於公網上的用戶,就無法訪問這個內網ip,那你可能就好奇了,那我為什麼平時上網可以訪問某個內網ip啊?其實ISP那裡做了一層NAT(Network Address Translation,網路地址轉換)服務(路由器也有NAT,但最終還是通過ISP的公網ip訪問公網的),相當於將這裡的內網ip映射到另外一個公網ip上了,所以才能訪問。。。

因此通過ADSL連接可能得到一組內網ip,而這個內網ip是無法架設網站的,因為這個ip屬於內網,在公網上這個ip其實相當於不存在,因此通過公網是無法訪問這個ip的。。。這就需要再通過ISP提供服務了,這就和平時我們自己的電腦聯網就差不多了。

其實不管怎樣,上面說的就是要獲得一個ip,這個ip就是ISP分配給你的。。。

》》》步驟四:確認路由表的規則

如果通過之前步驟獲得了正確的ip參數,就可以通過ping來測試一下是否可以連上internet上了,如果通過ping沒有得到遠程主機的響應,就是無法連接到公網上的主機,肯定就出問題了。

之前說過,我們在子網內發送數據包只需要mac地址就可以,但如果不在同一個子網內,兩台主機聯繫就需要通過路由了。。。尤其是那個預設路由(default route,和設置的本地dns伺服器地址不同,預設路由是路由器的ip地址)來幫忙傳遞封包了。因此當出現ping不通的情況,可能的問題就出在了路由與防火牆上面了。如果防火牆你也沒有設置的話,那基本可以鎖定在路由上了。。。

在linux下可以通過route命令,route命令用來顯示並設置Linux內核中的網路路由表,route命令設置的路由主要是靜態路由。要實現兩個不同的子網之間的通信,需要一台連接兩個網路的路由器,或者同時位於兩個網路的網關來實現。

在Linux系統中設置路由通常是為了解決以下問題:該Linux系統在一個區域網中,區域網中有一個網關,能夠讓機器訪問Internet,那麼就需要將網關的ip地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之後,該路由就失效了;可以在中添加route命令來保證該路由設置永久有效。

route命令在macOS系統下,可以使用route -n get default 可以查看默認網關,將default替換成你想查找的域名,則可查到對應域名的ip地址(route to),還可以看到本機的網關地址(geteway)。

但在macOS系統下的電腦里,則需要用netstat命令,來查看網路系統的狀態信息,可讓你得知整個系統的網路情況,具體的使用方法還有很多,如感興趣起請自行查找相關資料,以下是在linux系統電腦下的路由表情況:

這裡說說這裡面的幾個欄位:

Destination :是目的網段

netmask :是子網掩碼

interface :是到達該目的網段的本路由器的出口ip

gateway :是下一跳路由器入口的ip,路由器通過interface和gateway定義一跳到下一個路由器的鏈路,通常情況下,interface和gateway是同一個網段。

metric :跳數,表示該條路由記錄的質量。一般情況下,如果有多條到達相同目的地的路由記錄,路由器會採用metric值小的那條路由。

第一條記錄的Destination是0.0.0.0,表示預設路由(其實就是不知數據包如何處理時的默認路由),當一個數據包的目的網段不在路由記錄中,同時又不知如何處理數據包時,路由器就會把這個數據包發送到這個預設路由上。而預設路由的網關是你網路中的default gateway決定的。其實就是,當我收到一個數據包的目的網段不在我的路由記錄中,我就會把數據包通過192.168.123.88這個介面發送到192.168.123.254這個地址,這個地址是下一個路由器的一個介面,這樣這個數據包就可以交互給下一個路由器處理,我就不用再管了。同時該路由記錄的線路質量是1。

第三條記錄的Destination是127.0.0.0這個迴環地址,127.0.0.0這個網段內的所有地址都指向自己本機。

第四條記錄,是直連網段的路由記錄,注意這裡的gateway和interface是同一個。

當我接收到一個數據包的目的網段是192.168.123.0時,我會將該數據包通過192.168.123.68這個介面直接發送出去,因為這個埠直接連接著192.168.123.0這個網段。該條記錄的線路質量是1。

第六條記錄,是本地主機路由,是當路由器收到發送給自己的數據包時如何處理。當我收到一個數據包的目的網段是192.168.123.68時,我會將該數據包收下,因為這個數據包是發送給我自己的。該路由記錄的線路質量是1。

第八條記錄,是本地廣播路由,當路由器收到發送給直連網段的本地廣播時如何處理。當我收到廣播數據包的目的網段是192.168.123.255時,我會將該數據包從192.168.123.68介面以廣播的形式發送出去,該路由記錄的線路質量是1。

第十條記錄,是組播路由,當路由器收到一個組播數據包時該如何處理。當我收到組播數據包時,我會將該數據包從192.168.123.68介面以組播的形式發送出去,該路由記錄的線路質量是1。

第十二條記錄,是廣播路由,當路由器收到一個絕對廣播時該如何處理。當我接收到絕對廣播數據包時,將該數據包丟棄掉。

因此通過以上命令工具就可以大致分析出,自己本地電腦的路由情況了。如果路由都沒有問題了,那下一步就是域名解析了。。。

》》》步驟五:域名與ip地址查詢的DNS錯誤

如果你能通過ping工具連通一個遠程主機的ip,卻無法使用瀏覽器里打開某個域名對應的頁面,那很大可能問題出在DNS解析上。。。

可以直接通過命令行 nano /etc/resolv.conf 查詢,結果如下:

當然也可以通過設置裡面的DNS選項查看。上面一共有兩個本地DNS伺服器地址,域名解析的順序是從上往下,如果第一個DNS伺服器可以解析,則第二個dns伺服器將不會使用,如果不能解析,則依次向下類推。當你的電腦連入到一個網路時,ISP都為自動給你的主機設置一個dns主機的ip,因此一般也不需要自己配置本地DNS伺服器地址。

》》》步驟六:linux的NAT伺服器或ip分享器出問題

NAT伺服器最簡單的功能是ip分享器,NAT主機一定是部路由器,所以你必須要在linux上面觀察好正確的路由信息,否則肯定出問題。另外是NAT主機上面的防火牆設定是否合理?ip分享器上面是否設定攔截的機制等等,都會影響到對外聯機是否能夠成功。

》》》步驟七:internet的問題

當本地主機都沒有問題,網路始終連不通或超時,很可能是網路本身的問題。如網路中某個節點出現問題,導致流量堵車。想確認問題是否來自internet,可以使用traceroute命令。

traceroute命令用於追蹤數據包在網路上的傳輸時的全部路徑,它默認發送的數據包大小是40位元組。通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什麼路徑。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。

traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其ip地址。

記錄按序列號從1開始,每個紀錄就是一跳 ,每跳錶示一個網關,我們看到每行有三個時間,單位是ms,其實就是的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;如果用,表示向每個網關發送4個數據包。

有時我們traceroute一台主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。ICMP是(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。

有時我們在某一網關處延時比較長,有可能是某台網關比較阻塞,也可能是物理設備本身的原因。當然如果某台DNS出現問題時,不能解析主機名、域名時,也會有延時長的現象,你可以加-n參數來避免DNS解析,以IP格式輸出數據。

在區域網中的不同網段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某台伺服器遇到問題時,我們用traceroute 追蹤數據包所經過的網關,提交IDC服務商,也有助於解決問題;但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。

IDC為互聯網內容提供商(ICP)、企業、媒體和各類網站提供大規模、高質量、安全可靠的專業化伺服器託管、空間租用、網路批髮帶寬以及ASP、EC等業務。IDC是對入駐(Hosting)企業、商戶或網站伺服器群託管的場所;是各種模式電子商務賴以安全運作的基礎設施,也是支持企業及其商業聯盟(其分銷商、供應商、客戶等)實施價值鏈管理的平台。

》》》步驟八:伺服器的問題

如果以上都沒有問題,卻無法連接某部主機,那此時很大可能問題出現主機的設定上。這裡面可能有以下幾點:

1,伺服器沒有開放某項服務,例如主機關閉了telnet,因此如果再使用telnet去聯機,就無法連通了。

2,主機的許可權設定錯誤,例如將某個目錄設定為 drwx------,該目錄擁有者是root,你卻將該目錄開放給www來瀏覽,由於www無法進入該目錄,用戶當然也就無法正確的給客戶端瀏覽了,這是最典型的許可權設定錯誤情況。

3,防火牆問題,防火牆設定錯誤也是一個常見的問題,可以使用tcpdump來追蹤數據包的流向,以順利的了解防火牆是否設定錯誤。

tcpdump命令是一款sniffer工具,它可以列印所有經過網路介面的數據包的頭信息,也可以使用選項將數據包保存到文件中,方便以後分析。

直接啟動tcpdump將監視第一個網路介面上所有流過的數據包,如:

還可以監視指定網路介面的數據包

如果不指定網卡,默認tcpdump只會監視第一個網路介面,一般是eth0。

---------------完-------------

網路環境的檢測涉及很多方面,上面的這些是我們比較常用的一些,希望大家舉一反三,不要被這個流程給限制了,希望可以幫助到大家,謝謝大家的時間。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

PD-1怎麼用,效果最好
劉邦和劉備誰的領導能力更強?

TAG:全球大搜羅 |