Ping 命令完全講解[转帖]

作者 TombCrow, 2004 七月 23, 20:54:42

« 上一篇主题 - 下一篇主题 »

TombCrow

wueiz发表于蓝色魔法论坛

對於Windows下ping指令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻並不是很多,當然我也並不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。

  現在我就參照ping指令的輔助說明來給大家講我使用ping時會用到的技巧,ping只有在安裝了TCP/IP通訊協定以後才可以使用:

  ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] │ [-k computer-list]] [-w timeout] destination-list

  Options:

  -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.

  不停的ping地方主机,直到你按下Control-C。

  此功能?有什麼特別的技巧,不過可以配合其他參數使用,將在下面提到。

  -a Resolve addresses to hostnames.

  解析電腦NetBios名。

  例:C:\>ping -a 192.168.1.21

  Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:

  Reply from 192.168.1.21: bytes=32 timeping -n 50 202.103.96.68

  Pinging 202.103.96.68 with 32 bytes of data:

  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

  Request timed out.

  ..................

  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

  Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

  Ping statistics for 202.103.96.68:

  Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:

  Minimum = 40ms, Maximum = 51ms, Average = 46ms

  從以上我就可以知道在給202.103.96.68發送50個數據包的過程當中,返回了48個,其中有兩個由於未知原因丟失,這48個數據包當中返回速度最快為40ms,最慢為51ms,平均速度為46ms。

  -l size Send buffer size.

  定義echo數據包大小。

  在默認的情?下windows的ping發送的數據包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,就是最大只能發送65500byt,也許有人會問為什麼要限制到65500byt,因為Windows系列的系統都有一個安全漏洞(也許還包括其他系統)就是當向對方一次發送的數據包大于或等於65532時,對方就很有可能當机,所以微軟公司為了解決這一安全漏洞於是限制了ping的數據包大小。雖然微軟公司已經做了此限制,但這個參數配合其他參數以後危害依然非常強大,比如我們就可以通過配合-t參數來實現一個帶有攻擊性的指令:(以下介紹帶有危險性,只用於試驗,請勿輕易施於別人電腦上,否?後果自負)

  C:\>ping -l 65500 -t 192.168.1.21

  Pinging 192.168.1.21 with 65500 bytes of data:

  Reply from 192.168.1.21: bytes=65500 timeping -n 1 -r 9 202.96.105.101(發送一個數據包,最多記錄9個路由)

  Pinging 202.96.105.101 with 32 bytes of data:

  Reply from 202.96.105.101: bytes=32 time=10ms TTL=249

  Route: 202.107.208.187 ->

  202.107.210.214 ->

  61.153.112.70 ->

  61.153.112.89 ->

  202.96.105.149 ->

  202.96.105.97 ->

  202.96.105.101 ->

  202.96.105.150 ->

  61.153.112.90

  Ping statistics for 202.96.105.101:

  Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

  Approximate round trip times in milli-seconds:

  Minimum = 10ms, Maximum = 10ms, Average = 10ms

  從上面我就可以知道從我的電腦到202.96.105.101一共通過了202.107.208.187,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97這幾個路由。

  -s count Timestamp for count hops.

  指定count指定的?點數的時間戳。

  此參數和-r差不多,只是這個參數不記錄數據包返回所經過的路由,最多也只記錄4個。

  -j host-list Loose source route along host-list.

  利用computer-list指定的電腦列表路由數據包。連續電腦可以被中間關網?分隔(路由稀疏源)IP允許的最大?量為9。

  -k host-list Strict source route along host-list.

  利用computer-list指定的電腦列表路由數據包。連續電腦不能被中間網?分隔(路由?格源)IP允許的最大數量為9。

  -w timeout Timeout in milliseconds to wait for each reply.

  指定超時間隔,單位為毫秒。

  此參數?有什麼其他技巧。

  ping指令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主机的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系?返回的TTL值在100-130之間,而UNIX/Linux系列的系統返回的TTL值在240-255之間,當然TTL的值在對方的主机裡是可以修改的,Windows系列的系?可以通過修改注?表以下鍵值實現:

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

  "DefaultTTL"=dword:000000ff

  255---FF

  128---80

  64----40

  32----20

  好了,ping命令也基本上完全講解完了,其中還有-j,-k參數我還沒有詳細說明,由於某些原因也包括我自己所收集的資料過少這里也?有向大家詳細介紹,請大家見諒,如果在看了這篇文章的朋友當中有知道得比我更多的,以及其他使用技巧的也希望您能告知我,並在此先謝過。

-=-= 由原先 SC教學文件區 轉至此 =-=- 原發表人: KTB

C:>ping /?

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] │ [-k host-list]]
[-w timeout] destination-list

Options:
-t Ping the specified host until stopped.
To see statistics and continue - type Control-Break;
To stop - type Control-C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don't Fragment flag in packet.
-i TTL Time To Live.
-v TOS Type Of Service.
-r count Record route for count hops.
-s count Timestamp for count hops.
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.
-w timeout Timeout in milliseconds to wait for each reply.



TombCrow

Ping
(Packet Internet Gopher)
網路封包測試 相關資料
可用來測試遠端的主機是否存在,判斷網路是否正常

測試方法:
啟動DOS模式 > 輸入 PING 210.70.11.249


指令名稱 ping

使用權限 任何有效之使用者
使用方式 ping [-dfnqrRv] [-c <完成次數>] [-ig<間隔秒數>] [-I <網路介面>][-l <前置載入>] [-p <筥本樣式>] [-s <封包大小>] [-t <存活數值>] [主機名稱或IP位址]
說  明 使用ICMP(Internet Control Message Protocol) 傳輸協定,偵測遠端主機的網路功能是否正常,而給予回應訊息。
參  數
-c  設定完成要求回應的次數。此指令會反覆發出訊息,直到完成的次數為止。
-q  不顯示指令執行過程,除開始和結束之相關訊息外。
-s  設定封包大小。
-v  顯示指令執行詳細過程,包括非回應訊息的資訊皆會被列出。
筥  例 1. 偵測192.168.1.1的網路功能是否正常:
  * ping 192.168.1.1

Windows網路管理

--------------------------------------------------------------------------------

作者:李忠憲 mailto:shane@mail1.tmtc.edu.tw

--------------------------------------------------------------------------------

前言
過去系統管理師主要負責業務是校務行政系統的管理、訓練,有些學校系統管理師尚且兼管電腦教室,TANet到中小學後,系統管理師又兼網路管理師,部分教室電腦試行學校,系統管理師另須負責教室電腦的管理維護之責。簡單的說,目前系統管理師一人所負責的業務,幾近於一家社區電腦公司的工作量,這當然不是一般人能夠做的事。因此除非有濃厚的興趣,否則系統管理師通常都做不長久,在這樣的環境中,系統管理師還必須努力求新知,以免被工作淘汰。

筆者也當過系統管理師,所以能夠體認系統管理師的辛苦,希望此文能對系統管理師微有幫助!

網路規劃
有效的系統管理,規劃佔最重要的角色。所謂規劃是指以下幾件事:

一、 訂定網路管理政策。
二、 妥善規劃校園網路。
三、 統籌設置網路服務系統。
四、 骨幹頻寬管制。
五、 訂定IP網路節點申請核發原則。
六、 訂定網路安全政策。
七、 辦理教育訓練,宣導並鼓勵以正確的方式,來充分利用網路。
八、 對網路上不當資訊進行過濾和輔導,以確保學生身心不受傷害。
(更詳細的內容,留待以後再談)

以上每件事從一般性原則到技術層次,都有太多需要深入研究的柀ξ鳌D壳疤ū笔械默F況是由資訊教育輔導團幫各學校做規劃,但是因為學校之間的規模、需求差異頗大,這種大原則式的規劃只能著眼於經費運用與軟硬體採購。對於實際管理所需要的彈性,例如:要管多嚴、什麼允許、什麼不允許、哪些服務要採取何種保護(身份認證、防火_澅Wo、用量管制......等等),必須要由學校自行規劃。

規劃是一件長遠的事,因為實際管理上的經驗,會發現規劃不當或不足之處,就有再規劃的必要。在規劃階段結束後,接著網路管理師必須作好日常維護以減低網路故障的機會,萬一真的發生故障,網路偵錯就應該火速進行。

日常維護
日常維護的目的,是希望問題不要出現在伺服端,以免引起網路大規模的故障,另一個原因是避免小故障累積成沈痾。日常維護要做的事,包括:檢查各種伺服系統運作的訊息、檢查系統效能、察看是否有奇怪的程序正在執行、帳號管理、資源權限管理,略述如下:

事件檢視器
在NT上要檢查各種伺服系統運作的訊息,最簡單的方法就是執行事件檢視器,NT將事件分為系統、安全、應用程式等三類:屬於硬體或系統的服務(NT提供的各種網路服務),會放在系統事件中;如果你有要求系統紀錄某共享資源(目錄、檔案或印表機)有無違反權限之使用情形,訊息就會出現在安全事件裡;應用程式事件是給非NT的網路應用程式使用,例如:Netscape Proxy就是屬於此類。

如果你所執行的Server是在NT上跑的,通常都會支援NT的事件訊息服務,如果沒有支援,可能該軟體有設計自己的Log(日誌),這也是系統管理師必須去查看的。

效能監視器
在NT上有一個內建的效能監視器,你可以從編輯選單加入一個統計項目,選取你想要分析的物件(例如:某種網路服務、CPU、記憶體),加入要統計的細項,例如:Web伺服器每秒鐘的傳輸量......等。

為了省事,在建構完一台伺服器後,應該立刻建立相關監視項目,通常要監看CPU的使用量和Memory的使用量,另外應該針對該伺服器主要的服務,建立監看項目。

當然不同主機跑不同服務,在系統負荷上會有所不同,哪一種服務用量大,目前的機器夠不夠用來支撐該服務,從效能監視器可以得到一個比較客觀可信的結果。

工作管理員
要查看目前在Server上所執行的程式,可以在工作列上按滑鼠右鍵,然後選工作管理員,你可以檢視執行中的應用程式、系統程序、效能。常駐型程式放在「程序」活頁裡,還有微軟的網路服務程式也是,非微軟的服務當然是在「應用程式」活頁裡。

為了安全起見,WSH(Windows Script Host)這種服務一定不要開啟。其他的程序如果有陌生沒見過的,要加以留意,除非你知道自己在做什麼,否則千萬不要隨便關閉執行中的系統程序,這樣很可能會造成當機。那個程序是必須,那個是多餘的,只要連續觀察一個星期,大概就瞭解了。去問微軟當然比較快,但是我相信誰也不願意花這個錢!

去除多餘帳號
帳號管理的工作內容,除了使用者忘記密碼必須幫忙之外,消除多餘用不到的帳號,也事關重大。因為一個用不到的帳號,即使被別人冒用,也不會有任何使用者抱怨,這樣要做好網路安全是很困難的。在沒有辦法架設防火_澔驋裥衅渌踩胧┑那闆r下,這是唯一重要而必須去做的事。

管理資源權限
為了讓不需要資料的人接萤Σ坏劫Y料,資源權限的管理是很重要的,由於NTFS檔案系統才能做權限設定,因此不要把任何重要的文件放在Win98的機器上,因為Win98是使用FAT32這種檔案系統。在NT伺服端依群組特性建立專用目錄,是最基本的作法,如確有需要應該在專用目錄上設定權限Trap,讓系統在發現有人不守規矩時,能即時記錄並通知系統管理師。

Win95/98是NT網域內不被信任的節點,如果能使用poledit這個程式來修改Win95/98的系統登錄,讓使用者在登入系統時,必須通過網域主機上的帳號查核才能簽入,這樣會安全許多。到底權限考核要做到怎樣才夠安全?筆者認為以單純的小學校園環境來說,只要電腦教室管好就OK了,一般辦公室電腦除了注意防毒之外,大概不必多做什麼!

以上這些日常維護工作,多久要做一次?筆者建議應該是想到立刻去做、覺得有異樣立刻去做,至於因為工作忙碌,根本不想去做的部分,盡快分給別人去做吧!(資訊組已經成為「組」了,找些「組員」吧!)

釐清問題
當用戶對網路出現疑難時,網路管理師不應該立刻著手去偵錯處理,以免到頭來白忙一場,應該先問清楚,排除人為操作及應用軟體的問題,再決定下一步驟。在一個穩定的網路環境裡,網路故障的情況並不會太多。如果確定是網路出了問題,就要確定問題的來源,詢問用戶:

有沒有錯誤訊息?
在螢幕上看到什麼?
你正在進行何種操作?
問題什麼時候發生的?
最近有沒有裝過新軟體或硬體?
這些問題有助於釐清不正常現象的真正原因。

偵錯的價值
網路故障的可能性很多,如果有合理的懷疑,就可以使用偵錯工具做進一步的確認。確認問題來源並不是偵錯唯一的目的,因為故障排除的經驗,會有助於網路架構的規劃。例如:重要設備應有冗餘的線路,這樣能幫助偵錯,萬一真的故障也有後備計畫;有RAID系統就要有備用抽換硬碟,RAID才有設置的價值;在日常維護中若發現某機器負擔過重,某機器負擔過輕,就要依服務的性侃χ匦屡渲迷谇'數挠搀w上......等等。

偵錯步驟
撇開複雜的通訊協定不談,網路是由各種網路實體所組成,這些實體並不全都是PC,所以並不是全部都有使用者介面或圖形化的應用程式可以來監控_顟B,另外這些設備也有些是在遠端,沒辦法去看燈號或組態,必須在遠端操作。

由於種種不便,於是業者開發了所謂的web base介面,這些介面操作容易不需學習,對監看該設備_顟B有很大的幫助。可惜由於功能有限,所以並無法取代遠端登錄(telnet)。請詢問廠商或查看型錄,瞭解哪些設備有web介面可以使用。

一、實體線路連接問題:
檢查近端網路設備(例如:集線器、路由器、數據機)的燈號,Link(LNK)燈必須恆亮,而Action(ACT)燈必須閃_q,如果機器燈號不正常,必須將機器重開機,讓機器進行自我測試以恢復_顟B,有些廠牌的網路設備,重開機後並不會立刻將韌體也一起重新啟動,而需要以人工方式進入主控台(把這個設備連接在一台工作站的COM埠,然後用終端機軟體簽入該設備),下指令將韌體重新啟動。如果不是機器的問題,請將無法連線的設備更換網路線,再以Ping指令測試是否線路有通。

二、網路卡測試:
測試網路卡晶片是否能正常工作,一般網路卡會附贈偵錯程式(有些直接執行Setup就可以看到偵錯選單),萬一沒有附偵錯程式給你,也可以使用windows系統的內建偵錯工具, net diag指令來偵錯。

三、TCP/IP通訊協定偵錯:
以 ipconfig /all(UNIX使用ifconfig)檢查網路組態是否設定正確,要檢查的項目是 IP 位址,網路遮罩,GATEWAY 的位址,DNS設定。接著以 ping 127.0.0.1 測試loop back是否有回應,接著 ping 自己的 IP 是否有回應,如果沒有問題接著 ping GATEWAY ,看看是否有回應,如果沒問題,接著 ping 自己的DOMAIN NAME 看看是否有回應,假如這些都沒問題,表示網路組態設定是正確的,如果沒有得到預期的結果,請檢查網路組態,看看是哪個部分有問題。

四、ROUTING TABLE偵錯:
以 netstat -r 檢查路由設定,可以了解本地網域(LAN)路由設定是否正確(請參考拙作路由設定一文),如果設定上沒有問題,那有可能是遠端網域的路由出_顩r,由於遠端路由是由別人所管理,同時有可能穿越一個以上的區域網路,所以管理的單位及人員非常多,到底是誰的問題,應該聯絡誰處理,必須要追蹤路由,以釐清問題點出在那兒,可以使用 tracert(UNIX使用traceroute)指令追蹤路徑。有關路由的觀念,稍後在介紹指令時會詳細說明。

五、Netbios名稱服務偵錯:
如果在網路上的芳鄰看不到正確的電腦列表,而網路又已連通,那就表示Netbios名稱服務出了問題。由於UNIX主機並不支援Windows系列的Netbios名稱服務,所以在網路上的芳鄰看不到UNIX的機器是正常的,解決方法是在UNIX上安裝Samba伺服程式就可以了,關於UNIX和NT網路環境如何整合,本文不擬介紹。

Netbios名稱服務是透過廣播的方式來查詢主要名稱瀏覽器(Master Browser)來獲得電腦名單,主要名稱瀏覽器通常是網路上第一台開機的電腦,如果網域裡面有作業系統版本較高的主機,將會在開機後自動成為主要名稱瀏覽器,它會每隔十五分鐘選擇一台機器當備份名稱瀏覽器(Backup Browser),備份清單上的資料。網域內的工作站會每隔12秒廣播自己的電腦名稱,以及存在的分享資源,主要名稱瀏覽器收到後,就會整理清單。網域內如果電腦數太多會造成廣播封包急速增加,而佔用頻寬,規劃上可以使用橋接器或Layer 2的Switch管制廣播封包的流向,減輕網路負荷,有許多網路系統就是因為規劃不當而造成廣播風暴,致使網路效能不彰。

NetBT封包無法穿越路由器或防火_潱绻氪┰铰酚善髦荒軐etBT封裝成IP封包,這件事可由WINS伺服器來完成。同時因為WINS伺服器的架設,原本會定期廣播的機制,會轉變成固定向WINS查詢,可以有效減輕網路負擔,一台專職的WINS伺服器,其效能足以提供給五個網域內一千台以上的工作站使用。如果路由器後方有防火_潱仨殞CP137~139、UDP138~139放行,才能通過防火_澋臄r堵;通常只有在多個網域互相連接時,才需要考慮這個問題。這裡再強?#123;一次,如果區域網路電腦數量太多,或者已經用橋接器或交換器或路由器來連接各個子網域,一定要安裝一台專職WINS伺服器(選擇NT的WINS或UNIX的SAMBA都可以),這樣透過網路工作才會輕骭宜人。

我們可以使用 nbtstat -n 查看目前的電腦列表,或使用 nbtstat -r 來送出廣播封包以更新電腦列表的內容。

偵錯工具
一、 ping
ping指令是傳遞ICMP封包,來測試另一部主機或網路設備是否可經由網路連接。如果 ping 有成功回應,你會看到以下訊息:

C:>ping 163.21.236.5

Pinging 163.21.236.5 with 32 bytes of data:

Reply from 163.21.236.5: bytes=32 time=1ms TTL=255
Reply from 163.21.236.5: bytes=32 time<10ms TTL=255
Reply from 163.21.236.5: bytes=32 time=1ms TTL=255
Reply from 163.21.236.5: bytes=32 time=1ms TTL=255

Ping statistics for 163.21.236.5:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms

由於筆者是在local端執行,所以回應時間只有1ms,以ADSL來說大約在45~85ms之間是正常的,如果回應時間太久就是線路品侃Φ膯栴},因為線路品侃Σ缓茫獍辉僦厮停孕懿徽茫鉀Q方法除了檢查附近是否有電器干擾外,也只能依靠中華電信趕快提升電話線路抗干擾的能力。

ping不通有兩種情況,一種是出現Request timed out.,另一種是回應IP並伴隨錯誤訊息。前一種情形是表示封包送出後沒有回應,可能線路不通,也可能該主機沒有開機或沒有連上網路。後一種情形是有閘道器在收到封包後發現錯誤,所以發出ICMP封包通知執行ping的機器,在訊息中可以看到該閘道器的IP及錯誤訊息,例如:Reply from 163.21.254.254: Destination Unreachable.。

依照錯誤訊息各有不同含意,例如上述之Reply from 163.21.254.254 : Destination Unreachable. 通常是該主機服務不存在、埠不存在、主機或網路無法辨識或是因為管理上的理由該主機被禁止回應。而Reply from 163.21.254.254: TTL expired in transit. 則是因為路由設定錯誤產生迴圈,最後當TTL減到0時最後收到封包的閘道器就會發出此訊息,如果去 ping 一個不應該存在的IP也會產生此種訊息。

二、 net
net 與其說是一個指令,不如說是一個指令群,net 指令群由來已久,在NT上比在98上多了一些次指令,在此只介紹98提供的net次指令。各種次指令與用途略述如下:

net 不加參數,會顯示 net 指令群各種次指令列表及功能略述。
net help 會顯示此一指令群的詳細資訊和錯誤訊息的意義。
net config 用來顯示Windows網路的Netbois設定值,包括使用者名稱、電腦名稱、群組名稱及版本資訊。
net view 用來查詢和顯示某台主機所提供的共享資源名稱(藉由「檔案列印共享服務」這支程式來提供)。
net use 用來將遠端所提供的共享資源虛擬成本地端的資源。
net init 將網路_顟B重置,會重新載入網路卡驅動程式及通訊協定。
net logon 和 net logoff 就是進行Windows網域的登入、登出動作。
net start 和 net stop 用來起始和終止網路服務。
net passwd 修改目前使用者的密碼。
net time 向Time Server查詢正確的時間,並會改變本機的系統時間設定。
net print 用來顯示和控制網路印表機的列印工作_顟B。
net diag 網路連線偵測工具。

以下介紹 net diag 的用法,執行net diag 指令後,螢幕會出現下列訊息。

C:>net diag
Microsoft Network Diagnostics will use a NetBIOS provider.
Searching for diagnostic server...

No diagnostic servers were detected on the network.
Is Microsoft Network Diagnostics currently running on any other computers
on the network ? (Y/N)
This computer will now begin acting as a diagnostic server.

Press any key to stop acting as a diagnostic server.

使用時必須找一台沒有問題的機器來配合測試,首先在該機器上執行 net diag 出現Searching for diagnostic server... 訊息後,按 enter ,接著電腦會問你是不是要把該機器當成測試 server ,回答y(yes),機器會開始不停送出廣播封包。到要測試的機器上執行 net diag ,這時機器會去監耞網路上是否有diagnostic servers送出來的測試封包,假如網路卡沒有問題,應該會出現收到封包的訊息。

接收封包測試成功,表示網路卡可以將Data link封包(Layer 2)解框,但這並不一定表示網路卡沒有壞,所以接下來還必須測試傳送封包的能力,看看網路卡是不是可以將封包加框,必須將剛才步驟顛倒過來,測試其傳送封包的能力,假設都沒有問題,那麼就證明網路卡可以正常工作。

記得使用這種非廠商提供的程式,必須使用微軟的NDIS界面與網路卡所附的Layer 2的驅動程式,所以使用此方法來測試,需先執行net logon,將這兩種柀ξ鱞ind在一起。如果你連網路都無法login,請製作一片DOS開機片,將網路卡所附的NDIS DOS驅動程式,以 Device= 的方式掛在config.sys中,再用它開機就可以正確執行net指令了,有點麻煩但是當你沒有網路卡測試工具時,就必須這麼做。

三、 ipconfig
這個指令用來顯示基本IP設定,如果使用 ipconfig /all 可以顯示更多的組態,畫面如下:

C:>ipconfig /all

Host Name . . . . . . . . . : caldera.tmtc.edu.tw
DNS Servers . . . . . . . . : 163.21.236.4
163.21.236.5
163.21.236.7
Node Type . . . . . . . . . : Broadcast
NetBIOS Scope ID. . . . . . :
IP Routing Enabled. . . . . : No
WINS Proxy Enabled. . . . . : No
NetBIOS Resolution Uses DNS : Yes

0 Ethernet adapter :

Description . . . . . . . . : Fast Ethernet PCI Adapter
Physical Address. . . . . . : 00-80-C8-F7-ED-29
DHCP Enabled. . . . . . . . : No
IP Address. . . . . . . . . : 163.21.236.71
Subnet Mask . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . : 163.21.236.254
Primary WINS Server . . . . :
Secondary WINS Server . . . :
Lease Obtained. . . . . . . :
Lease Expires . . . . . . . :

各種組態中Netbios名稱服務的五種組態(以紅色標示)是Windows系統特有的,(請參考上節Netbios的說明),UNIX以ifconfig顯示IP組態時,並不會有此類訊息。分別敘述如下:

Node Type . . . . . . . . . : Broadcast 表示本機以廣播方式從主要名稱瀏覽器取得Netbios名稱表列,而不透過WINS伺服器解析Netbios名稱(Broadcast會浪費頻寬)。

NetBIOS Scope ID. . . . . . : 表示未設定輄區號碼,輄區號碼是用來定義Netbios群組,以便在同一子網域中分隔電腦共享資源成不同的表列。

IP Routing Enabled. . . . . : No 表示不要啟動IP路由

WINS Proxy Enabled. . . . . : No 表示不要成為WINS在本地網域代理者(如果設成Yes,可以讓本機成為遠端WINS的本地端代理器,可以有效降低頻寬用量)

NetBIOS Resolution Uses DNS : Yes 表示要使用DNS來做Netbios名稱解析

使用DNS來做Netbios名稱解析是沒有意義的,特別是透過UNIX系統的DNS,或許微軟公司想要以DNS來支援Netbios名稱系統,但由於TCP/IP風行,所以微軟自己的DNS也僅只是將Netbios名稱的要求封包丟給WINS伺服器去解析,扮演起白手套的角色,自己也不提供支援。

四、 tracert
這個工具用來追蹤封包從一部機器到另一部機器,將會經由網路走哪一條路徑。這個工具對於追蹤網路斷訊特別有用,當然系統管理師必須對網路實際連接的架構有所瞭解,才能派上用場。其輸出結果如下:

C:>tracert ntu.edu.tw

Tracing route to w3.cc.ntu.edu.tw [140.112.8.130]
over a maximum of 30 hops:

1 1 ms <10 ms 1 ms 163.21.236.254
2 <10 ms 1 ms <10 ms 163.21.254.254
3 2 ms 1 ms 1 ms 140.111.255.17
4 3 ms 4 ms 5 ms 203.72.38.112
5 4 ms 4 ms 3 ms r7513-CC.ntu.edu.tw [140.112.254.7]
6 3 ms 3 ms 3 ms w3.cc.ntu.edu.tw [140.112.8.130]

如上圖經過的閘道共有:師院電算中心路由器、台北市教育網路中心路由器、教育部路由器、網路交換中心、台灣大學路由器,最後到達目的地台大Web伺服器。

如果出現三個星號,表示路徑選擇失敗,從失敗的位置可以找出網路故障的筥圍,如果連續很多星號超過應有的閘道數,這就表示所有路徑已測試完畢,沒有辦法連接該主機。你可以在tracert指令後面加上 -h 100 表示要追蹤100個hops,每個閘道通過一次算一個hop,一般內定值是30 hops,事實上已綽綽有餘。

五、 netstat
這個指令也像net指令一樣,有一大堆功能,不過一般是用來觀察路由表,在Windows和UNIX上都可使用。在Windows的環境下,還可以用route print來觀察路由表。由於校園網路已轉型成網際網路的一環,將來的架構會變成UNIX和Windows混合環境,所以早一點熟悉UNIX指令也不錯。

Routing和IP CLASS網路的實際連線有直接的關係,當兩台機器間的路徑出現複數選擇時,靜態路由就無法解決問題,而要依靠動態路由協定來和其它路由器求得最佳路徑,這在中小學目前的校園環境裡應該是遇不到,所以現在去設定動態路由協定,實在是多此一舉,也浪費網路資源。

執行netstat -r出現下列訊息:

C:>netstat -r

Route Table

Active Routes:

Network Address Netmask Gateway Address Interface Metric
0.0.0.0 0.0.0.0 163.21.236.254 163.21.236.71 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
163.21.236.0 255.255.255.0 163.21.236.71 163.21.236.71 1
163.21.236.71 255.255.255.255 127.0.0.1 127.0.0.1 1
163.21.255.255 255.255.255.255 163.21.236.71 163.21.236.71 1
224.0.0.0 224.0.0.0 163.21.236.71 163.21.236.71 1
255.255.255.255 255.255.255.255 163.21.236.71 163.21.236.71 1

Active Connections

Proto Local Address Foreign Address State
TCP caldera:1115 tp.edu.tw:nbsession ESTABLISHED

路由表的第一行0.0.0.0/0.0.0.0稱為預設閘道,在Windows控制台的網路組態裡,可以設定此項參數。127.0.0.0/255.0.0.0是lookback迴路,可用來測試主機的網路服務是否存在。224.0.0.0/224.0.0.0是實驗用的IP,一般會拿來用作Muticast用途,也就是用在網路視訊廣播。255.255.255.255/255.255.255.255是預設的廣播IP,目前沒在用。以上這些路徑,在每片網路卡上都會有,是在安裝後自動產生的,其中以預設閘道最為重要,因為它關係著能不能連上Inetrnet。

還有三條路徑是由網路卡所設定的IP來決定的,如果一片網路卡設定成兩個不同IP,就會有六條路徑。其中163.21.236.71/255.255.255.255是筆者現在所在的電腦,163.21.236.255/255.255.255.255是筆者所在Class C網域的廣播用IP,最重要的163.21.236.0稱為網路名稱,163.21.236.0/255.255.255.0這條路徑是用來到達筆者所在的子網域。

假設現在要將163.21.236.0這個網域,進一步分割成兩個子網域,分別是:

網路名稱 163.21.236.0 163.21.236.128
網路遮罩 255.255.255.128 255.255.255.128
起始IP 163.21.236.1 163.21.236.129
終止IP 163.21.236.126 163.21.236.254
廣播IP 163.21.236.127 163.21.236.255

連接兩個子網域的橋接器,必須插兩片網路卡來當作閘道,其中一片使用163.21.236.126,另一片網路卡使用163.21.236.254這個IP,兩片網路卡各落在一個子網路內,其中163.21.236.0這個子網路必須透過163.21.236.128才能連上Internet(因為預設閘道163.21.236.254是在163.21.236.128這個子網路中)。

在這個新環境裡,筆者的電腦必須變更網路卡上的遮罩,從255.255.255.0變成255.255.255.128,而考慮要連接到163.21.236.128這個子網路,我必須建立一條新的路由,使用route指令:

route add 163.21.236.128 mask 255.255.255.128 163.21.236.126

意思是:要到163.21.236.128這個子網路,必須將封包送到163.21.236.126去處理,我們知道163.21.236.126就是橋接器連通我們這個子網路的網路卡。

接著來考慮如何連上Internet,很明顯的原來的預設閘道不能用了,因為在我的子網路163.21.236.0裡是找不到163.21.236.254這台機器,這台機器是在163.21.236.128這個子網路,所以我必須透過橋接器才到得了。首先刪除原來的預設閘道路徑,再加上新的路徑:

route del 0.0.0.0 mask 0.0.0.0 163.21.236.254
route add 0.0.0.0 mask 0.0.0.0 163.21.236.126 metric 2

metric 2是告訴橋接器,這個封包不在你的子網路裡,請轉送給下一個閘道。不過通常橋接器在路由表設定好後,它就知道怎麼辦了,這個參數寫不寫無所謂。

(注意這裡的Metric和OSPF協定裡面定義的Metric距離向量,是不一樣的,這裡的Metric是微軟的風格,以1代表穿過一個閘道)

以上是路由的簡要說明,關於其它拓樸環境的路由,甚至是動態路由的進一步訊息,應該另為文介紹,在這裡就不多說了!

在netstat -r的回應訊息中最後一道訊息是:

TCP caldera:1115 tp.edu.tw:nbsession ESTABLISHED

這是表示目前有一條連線正在作用中:筆者的電腦(caldera)正以TCP協定連接到tp.edu.tw這台主機的nbsession埠。這個埠就是TCP 137埠,是用來查Netbios名稱的,因為筆者在[url]www.tp.edu.tw上安裝了SAMBA服務,然後透遊/url]^網路上的芳鄰來編修和製作網頁,所以會看到這樣的訊息。透過這些訊息,不是就可以揭開網路的奧秘嗎?

六、 nbtstat
這道指令乍看之下,會誤以為是netstat,nbt也就是NetBT,也就是Netbios over TCP/IP。剛才已經解釋過,這是將Netbios廣播封包重新封裝成TCP/IP格式,藉以與遠端的WINS伺服器通訊。

nbtstat -s用來顯示目前本機透過Netbios名稱服務取用資源的情形。

C:>nbtstat -s


NetBIOS Connection Table

Local Name State In/Out Remote Host Input Output
----------------------------------------------------------------------------
SHANE <00> Connected Out WWW <20> 426KB 629KB
SHANE <03> Listening
SHANE Listening
ROOT <03> Listening

檢查得知目前已連接至名叫WWW的電腦,取用了若干資料。下面的Listening表示本機正等待別人來使用共享資源。Windows系統並不會去分辨本機有沒有資源提供給別人分享,而是無論如何都會將Netbios服務開啟,這也就是為什麼即使沒有柀ξ髟诜窒恚诰W路上的芳鄰看到主機列表,同樣要花相當久的時間。還好Netbios是終將淘汰的柀ξ鳎╓indows 2000還是向下支援了Netbios,以避免與舊有Windows環境脫節,但是具名管道服務在Windows 2000中完全以DNS的方式實作)。

七、 nslookup
這是用來偵測DNS名稱解析的工具,DNS是連上Internet必要的服務,相關的觀念,相信讀者已非常熟悉,這裡就不多說了。你要注意的是,Windows系統中只有NT系列有提供這個指令,所以請不要在98上面做這項偵錯。

我們來看以下的偵錯過程:

C:>nslookup

預設伺服器: ns.tmtc.edu.tw <--我的網路組態以它當第一台DNS
Address: 163.21.236.4

> tmtc.edu.tw <--先測試該Server管理的正解紀錄是否存在

伺服器: ns.tmtc.edu.tw
Address: 163.21.236.4

名稱: tmtc.edu.tw <--OK沒問題
Address: 163.21.236.22

> 163.21.236.22 <--再測試該Server管理的反解紀錄是否存在

伺服器: ns.tmtc.edu.tw
Address: 163.21.236.4

名稱: tmtc.edu.tw <--OK也沒問題
Address: 163.21.236.22

> set q=any <--改變查詢的選項為任何型態紀錄
> edu.tw <--查詢我們上一層的網域內容

伺服器: ns.tmtc.edu.tw
Address: 163.21.236.4

edu.tw internet address = 140.111.1.2
edu.tw nameserver = moevax.edu.tw
edu.tw nameserver = moesun.edu.tw
edu.tw
primary name server = moevax.edu.tw
responsible mail addr = sanger.moers4.edu.tw
serial = 199911173
refresh = 21600 (6 hours)
retry = 7200 (2 hours)
expire = 3600000 (41 days 16 hours)
default TTL = 172800 (2 days)

edu.tw nameserver = moevax.edu.tw <--上一層的DNS主機
edu.tw nameserver = moesun.edu.tw
moevax.edu.tw internet address = 140.111.1.2
moesun.edu.tw internet address = 140.111.1.20
moesun.edu.tw internet address = 163.28.1.101

> lserver 140.111.1.2 <--將上一層的DNS主機設定為本地端DNS

預設伺服器: moevax.edu.tw 伺服器
Address: 140.111.1.2

> tp.edu.tw <--查詢本地網域在上一層的設定內容

伺服器: moevax.edu.tw
Address: 140.111.1.2

tp.edu.tw nameserver = ns.tp.edu.tw <--與我們呈報上去的設定一致,表
tp.edu.tw nameserver = dns.tp.edu.tw 示上一層沒有把我們設錯
ns.tp.edu.tw internet address = 163.21.236.5
dns.tp.edu.tw internet address = 163.21.236.7

> exit <--離開nslookup工具

這一段偵錯過程是在追蹤DNS為何不工作,通常我們是由下往上查,而不是由上往下查,因為越往上層其管理會越嚴謹,出錯機率相對不高,除非是我們給上層錯誤的資料,否則不致於會有問題。

偵測過程中,先偵測自己Server管輄內的機器是否能正確的正反解,如果不能解出正確結果,那麼就是我們自己的Server設定錯誤(通常是語法錯誤),如果根本不能查詢,而且出現錯誤訊息,那就是Server掛掉了,請將它修復後重新開機。

如果偵測沒有問題,但是在瀏覽器中還是不能看到自己的網頁,這時候我們懷疑上一層資料與我們不Match,我們就必須進行記錄比對。

假如不知道上層DNS的位址,可以先在自己的Server上查詢一下,查出結果後,再將該Server設成本地端預設DNS,這樣做的目的是讓以下的查詢可以真正讀取到該Server管輄的記錄內容。

查詢有關本地網域它所知道的任何訊息,Server應該會回應所有有關的紀錄,核對看看是不是與我們通報上去的資料一致。假如是因為我們這邊做了修改,但是沒有通知上一層的管理員,那發生錯誤就是天經地義的了!

任何已登錄的DNS,要修改IP或網域名稱,一定要經過正常行政程序通知上一層管理員,請上一層管理員幫你修改紀錄,這樣改變才是有效的!

結語
在訊息萬變的今天,即使是一個廣為人知的系統,系統更新的速度也將越來越快。想要學一招走江湖,也越來越困難。在Windows網路普及的今天,也難保網路架構不會再改變,Linux開始大量的出現在企業伺服端,為了因應局勢,微軟也推出擁有更先進功能,更貼合於TCP/IP的新作業系統Windows 2000,根據微軟公布的「TCP/IP在Windows 2000的實作細節」白皮書中的描述,Windows 2000支援更多的網路界面,例如:ADSL、ATM等等。支援更多的協定,例如:正日趨風行的IP Muticast、群組管理協定IGMP、IP Forwarder、IP Filtering、路由協定OSPF......等等。提供更強更低階的控制除錯工具,幾乎原封不動的移植所有UNIX下的網路偵錯工具。在網路實作上的規格,幾乎是與Linux相同,可以看出微軟想要打敗Linux的企圖心,當然兩者依然無法相容,例如:Linux的列印使用lp通訊協定,而Windows 2000使用IPP;Linux的Telnet以SSH編碼來加強安全,而Windows則使用自行研發的SGC編碼。微軟的WSH也發展成為Shell warp,也可以在WSH上面執行bash、csh......等各種Shell,並提供約25種UNIX指令,以方便遠端管理,預定也將支援Tcl/tk、python、perl......等多種Script語言。筆者試用的結果是,功能的確大幅進步,但在效能及細部?#123;校上,仍然一如以往,進步不大。

對於Windows網路管理師來說,Windows 2000更好的支援代表著網路實作上的難度會降低,但是相對的也代表著學習的曲線會延伸的更長,要瞭解一個系統將更不容易。所以一找到時間空隙,就要把握時間不斷地進修,不要讓系統管理工作,蹉跎了你的青春。

爱因斯坦

天书天书哦,从电脑盲到这一步要走多远啊????????????????????????

james527

这些命令其实很实用的说.

TombCrow

当你打开浏览器,自由地游弋于浩如烟海的互联网世界之时,是否也沉迷于下载各种实用软件?其中也许有很大一部分就是网络工具吧!但请你不要忽视你的面前——Windows(包括Win98和NT)作系统中本来就带有不少的网络实用工具,虽然比较简单,却并不简陋。本着"简单就是美"的原则,下面就为你展现Windows网络实用工具的丰采......

Ping

Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。

简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,前段时间Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。

按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答。

Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,你可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。

通过Ping检测网络故障的典型次序

正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:

ping 127.0.0.1--这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。

ping 本机IP--这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。

ping 局域网内其他IP--这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。

ping 网关IP--这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。

ping 远程IP--如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。

ping localhost--localhost是个作系统的网络保留名,它是127.0.0.1的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。

ping //www.yahoo.com--对这个域名执行Pin ... 地址,通常是通过DNS 服务器 如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:你也可以利用该命令实现域名对IP地址的转换功能。

如果上面所列出的所有Ping命令都能正常运行,那么你对你的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。

Ping命令的常用参数选项
ping IP -t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
ping IP -l 2000--指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。
ping IP -n--执行特定次数的Ping命令。
Netstat Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

如果你的计算机有时候接受到的数据报会导致出错数据删除或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。

subaru

我输了ipconfig后,为什么只显示了一行"Windows IP Configuatin"就什么也没有了?
我用"http://127.0.0.1"或"http://localhost"都不能访问本地
急啊~~

TombCrow

奇怪,你的网络应该是正常的啊,居然ping不通?我在我的机子上ping得好开心啊,呵呵

subaru

唉~~这几天不知怎么搞的~~太多事情都和预想的不一样~~ping有用~~~
但是不能用http://localhost/来测试本地的网页~~
吃晚饭去了