天天看點

DOS網絡指令全集

DOS網絡指令全集

在這裡整理了有關DOS網絡指令

Ping

Ping是個使用頻率極高的實用程式,用于确定本地主機是否能與另一台主機交換(發送與接收)資料報。根據傳回的資訊,你就可以推斷TCP/IP參數是否設定得正确以及運作是否正常。需要注意的是:成功地與另一台主機進行一次或兩次資料報交換并不表示TCP/IP配置就是正确的,你必須執行大量的本地主機與遠端主機的資料報交換,才能确信TCP/IP的正确性。

簡單的說,Ping就是一個測試程式,如果Ping運作正确,你大體上就可以排除網絡通路層、網卡、MODEM的輸入輸出線路、電纜和路由器等存在的故障,進而減小了問題的範圍。但由于可以自定義所發資料報的大小及無休止的高速發送,Ping也被某些别有用心的人作為DDOS(拒絕服務攻擊)的工具,前段時間Yahoo就是被黑客利用數百台可以高速接入網際網路的電腦連續發送大量Ping資料報而癱瘓的。

按照預設設定,Windows上運作的Ping指令發送4個ICMP(網間控制封包協定)回送請求,每個32位元組資料,如果一切正常,你應能得到4個回送應答(見圖1)。

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 [url]www.yahoo.com[/url]——對這個域名執行Ping指令,你的計算機必須先将域名轉換成IP位址,通常是通過DNS伺服器(關于DNS本刊2000年3期有詳述)。如果這裡出現故障,則表示DNS伺服器的IP位址配置不正确或DNS伺服器有故障(對于撥号上網使用者,某些ISP已經不需要設定DNS伺服器了)。順便說一句:你也可以利用該指令實作域名對IP位址的轉換功能(見圖2)。

如果上面所列出的所有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查一查為什麼會出現這些情況了。

Netstat的一些常用選項:

netstat -s——本選項能夠按照各個協定分别顯示其統計資料。如果你的應用程式(如Web浏覽器)運作速度比較慢,或者不能顯示Web頁之類的資料,那麼你就可以用本選項來檢視一下所顯示的資訊。你需要仔細檢視統計資料的各行,找到出錯的關鍵字,進而确定問題所在(見圖3)。

netstat -e——本選項用于顯示關于以太網的統計資料。它列出的項目包括傳送的資料報的總位元組數、錯誤數、删除數、資料報的數量和廣播的數量。這些統計資料既有發送的資料報數量,也有接收的資料報數量。這個選項可以用來統計一些基本的網絡流量(見圖4)。

netstat -r——本選項可以顯示關于路由表的資訊,類似于後面所講使用route print指令時看到的 資訊。除了顯示有效路由外,還顯示目前有效的連接配接。

netstat -a——本選項顯示一個所有的有效連接配接資訊清單,包括已建立的連接配接(ESTABLISHED),也包括監聽連接配接請求(LISTENING)的那些連接配接。

netstat -n——顯示所有已建立的有效連接配接。

Netstat的妙用

經常上網的人一般都使用ICQ的,不知道你有沒有被一些讨厭的人騷擾得不敢上線,想投訴卻又不知從和下手?其實,你隻要知道對方的IP,就可以向他所屬的ISP投訴了。但怎樣才能通過ICQ知道對方的IP呢?如果對方在設定ICQ時選擇了不顯示IP位址,那你是無法在資訊欄中看到的。其實,你隻需要通過Netstat就可以很友善的做到這一點:當他通過ICQ或其他的工具與你相連時(例如你給他發一條ICQ資訊或他給你發一條資訊),你立刻在DOS Prompt下輸入netstat -n或netstat -a就可以看到對方上網時所用的IP或ISP域名了(見圖5)。甚至連所用Port都完全暴露了,如果你想給他一些教訓,這些資訊已經足夠……

IPConfig

IPConfig實用程式和它的等價圖形使用者界面——Windows 95/98中的WinIPCfg可用于顯示目前的TCP/IP配置的設定值。這些資訊一般用來檢驗人工配置的TCP/IP設定是否正确。但是,如果你的計算機和所在的區域網路使用了動态主機配置協定(Dynamic Host Configuration Protocol,DHCP——Windows NT下的一種把較少的IP位址配置設定給較多主機使用的協定,類似于撥号上網的動态IP配置設定),這個程式所顯示的資訊也許更加實用。這時,IPConfig可以讓你了解你的計算機是否成功的租用到一個IP位址,如果租用到則可以了解它目前配置設定到的是什麼位址。了解計算機目前的IP位址、子網路遮罩和預設網關實際上是進行測試和故障分析的必要項目。

最常用的選項:

ipconfig——當使用IPConfig時不帶任何參數選項,那麼它為每個已經配置了的接口顯示IP位址、子網路遮罩和預設網關值,如圖6的上半部分。

ipconfig /all——當使用all選項時,IPConfig能為DNS和WINS伺服器顯示它已配置且所要使用的附加資訊(如IP位址等),并且顯示内置于本地網卡中的實體位址(MAC)。如果IP位址是從DHCP伺服器租用的,IPConfig将顯示DHCP伺服器的IP位址和租用位址預計失效的日期(有關DHCP伺服器的相關内容請詳見其他有關NT伺服器的書籍或詢問你的網管),其輸出資訊見圖6的下半部分。

ipconfig /release和ipconfig /renew——這是兩個附加選項,隻能在向DHCP伺服器租用其IP位址的計算機上起作用。如果你輸入ipconfig /release,那麼所有接口的租用IP位址便重新傳遞給DHCP伺服器(歸還IP位址)。如果你輸入ipconfig /renew,那麼本地計算機便設法與DHCP伺服器取得聯系,并租用一個IP位址。請注意,大多數情況下網卡将被重新賦予和以前所賦予的相同的IP位址。

如果你使用的是Windows 95/98,那麼你應該更習慣使用winipcfg而不是ipconfig,因為它是一個圖形使用者界面,而且所顯示的資訊與ipconfig相同,并且也提供釋出和更新動态IP位址的選項(見圖7,全部詳細資料見圖8)。如果你購買了Windows NT Resource Kit(NT資源包),那麼Windows NT也包含了一個圖形替代界面,該實用程式的名字是wntipcfg,和Windows 95/98的winipcfg類似。

ARP(位址轉換協定)

ARP是一個重要的TCP/IP協定,并且用于确定對應IP位址的網卡實體位址。實用arp指令,你能夠檢視本地計算機或另一台計算機的ARP高速緩存中的目前内容。此外,使用arp指令,也可以用人工方式輸入靜态的網卡實體/IP位址對,你可能會使用這種方式為預設網關和本地伺服器等常用主機進行這項操作,有助于減少網絡上的資訊量。

按照預設設定,ARP高速緩存中的項目是動态的,每當發送一個指定地點的資料報且高速緩存中不存在目前項目時,ARP便會自動添加該項目。一旦高速緩存的項目被輸入,它們就已經開始走向失效狀态。例如,在Windows NT網絡中,如果輸入項目後不進一步使用,實體/IP位址對就會在2至10分鐘内失效。是以,如果ARP高速緩存中項目很少或根本沒有時,請不要奇怪,通過另一台計算機或路由器的ping指令即可添加。是以,需要通過arp指令檢視高速緩存中的内容時,請最好先ping 此台計算機(不能是本機發送ping指令)。

常用指令選項:

arp -a或arp -g——用于檢視高速緩存中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是UNIX平台上用來顯示ARP高速緩存中所有項目的選項,而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。

arp -a IP——如果你有多個網卡,那麼使用arp -a加上接口的IP位址,就可以隻顯示與該接口相關的ARP緩存項目。

arp -s IP 實體位址——你可以向ARP高速緩存中人工輸入一個靜态項目。該項目在計算機引導過程中将保持有效狀态,或者在出現錯誤時,人工配置的實體位址将自動更新該項目。

arp -d IP——使用本指令能夠人工删除一個靜态項目。

以上參數的綜合應用詳見圖9、圖10。

看到這裡,你也許已經有些累了……其實對于一般使用者來說也已經足夠——你可以用ipconfig和ping指令來檢視自己的網絡配置并判斷是否正确、可以用netstat檢視别人與你所建立的連接配接并找出ICQ使用者所隐藏的IP資訊、可以用arp檢視網卡的MAC位址——這些已足已讓你丢掉菜鳥的頭銜。如果你并不滿足,那就“硬着頭皮”(下面的内容可能有些枯燥)繼續Follow me……

Tracert

當資料報從你的計算機經過多個網關傳送到目的地時,Tracert指令可以用來跟蹤資料報使用的路由(路徑)。該實用程式跟蹤的路徑是源計算機到目的地的一條路徑,不能保證或認為資料報總遵循這個路徑。如果你的配置使用DNS,那麼你常常會從所産生的應答中得到城市、位址和常見通信公司的名字。Tracert是一個運作得比較慢的指令(如果你指定的目标位址比較遠),每個路由器你大約需要給它15秒鐘(圖11是Tracert的一個運作結果)。

Tracert的使用很簡單,隻需要在tracert後面跟一個IP位址或URL,Tracert會進行相應的域名轉換的。Tracert一般用來檢測故障的位置,你可以用tracert IP在哪個環節上出了問題,雖然還是沒有确定是什麼問題,但它已經告訴了我們問題所在的地方,你也就可以很有把握的告訴别人——某某出了問題。

Route

大多數主機一般都是駐留在隻連接配接一台路由器的網段上。由于隻有一台路由器,是以不存在使用哪一台路由器将資料報發表到遠端計算機上去的問題,該路由器的IP位址可作為該網段上所有計算機的預設網關來輸入。

但是,當網絡上擁有兩個或多個路由器時,你就不一定想隻依賴預設網關了。實際上你可能想讓你的某些遠端IP位址通過某個特定的路由器來傳遞,而其他的遠端IP則通過另一個路由器來傳遞。

在這種情況下,你需要相應的路由資訊,這些資訊儲存在路由表中,每個主機和每個路由器都配有自己獨一無二的路由表。大多數路由器使用專門的路由協定來交換和動态更新路由器之間的路由表。但在有些情況下,必須人工将項目添加到路由器和主機上的路由表中。Route就是用來顯示、人工添加和修改路由表項目的。

一般使用選項:

route print——本指令用于顯示路由表中的目前項目,在單路由器網段上的輸出結果如圖12,由于用IP位址配置了網卡,是以所有的這些項目都是自動添加的。

route add——使用本指令,可以将信路由項目添加給路由表。例如,如果要設定一個到目的網絡209.98.32.33的路由,其間要經過5個路由器網段,首先要經過本地網絡上的一個路由器,器IP為202.96.123.5,子網路遮罩為255.255.255.224,那麼你應該輸入以下指令:

route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5

route change——你可以使用本指令來修改資料的傳輸路由,不過,你不能使用本指令來改變資料的目的地。下面這個例子可以将資料的路由改到另一個路由器,它采用一條包含3個網段的更直的路徑:

route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3

route delete——使用本指令可以從路由表中删除路由。例如:route delete 209.98.32.33

NBTStat

NBTStat(TCP/IP上的NetBIOS統計資料)實用程式用于提供關于關于NetBIOS的統計資料。運用NetBIOS,你可以檢視本地計算機或遠端計算機上的NetBIOS名字表格。

常用選項:

nbtstat -n——顯示寄存在本地的名字和服務程式(見圖13)。

nbtstat -c——本指令用于顯示NetBIOS名字高速緩存的内容。NetBIOS名字高速緩存用于寸放與本計算機最近進行通信的其他計算機的NetBIOS名字和IP位址對。

nbtstat -r——本指令用于清除和重新加載NetBIOS名字高速緩存。

nbtstat -a IP——通過IP顯示另一台計算機的實體位址和名字清單,你所顯示的内容就像對方計算機自己運作nbtstat -n一樣(見圖14)。

nbtstat -s IP——顯示實用其IP位址的另一台計算機的NetBIOS連接配接表。

Net

Net指令有很多函數用于實用和核查計算機之間的NetBIOS連接配接。這裡我隻介紹最常用的兩個:net view和net use。

net view UNC——運用此指令,你可以檢視目标伺服器上的共享點名字。任何區域網路裡的人都可以發出此指令,而且不需要提供使用者ID或密碼。UNC名字總是以\\開頭,後面跟随目标計算機的名字。例如,net view \\lx就是檢視主機名為lx的計算機的共享點(見圖15)。

net use 本地盤符 目标計算機共享點——本指令用于建立或取消到達特定共享點的映像驅動器的連接配接(如果需要,你必須提供使用者ID或密碼)。例如,你輸入net use f: \\lx\mp3就是将映像驅動器F:連接配接到\\lx\mp3共享點上,今後你直接通路F:就可以通路\\lx\mp3共享點,這和你右擊“我的電腦”選擇映射網絡驅動器類似。

cnrouter 2004-6-18 03:32

PING 指令詳解

ping指令在我們日常的網絡使用中經常用到,合理的使用ping指令可以幫我們快速的解決網絡問題

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 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Ping statistics for 192.168.1.21:

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

Minimum = 0ms, Maximum = 0ms, Average = 0ms

從上面就可以知道IP為192.168.1.21的計算機NetBios名為iceblood.yofor.com。

-n count Number of echo requests to send.

發送count指定的Echo資料包數。

在預設情況下,一般都隻發送四個資料包,通過這個指令可以自己定義發送的個數,對衡量網絡速度很有幫助,比如我想測試發送50個資料包的傳回的平均時間為多少,最快時間為多少,最慢時間為多少就可以通過以下獲知:

C:\>ping -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 time<10ms TTL=254

Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254

………………

這樣它就會不停的向192.168.1.21計算機發送大小為65500byt的資料包,如果你隻有一台計算機也許沒有什麼效果,但如果有很多計算機那麼就可以使對方完全癱瘓,我曾經就做過這樣的試驗,當我同時使用10台以上計算機ping一台Win2000Pro系統的計算機時,不到5分鐘對方的網絡就已經完全癱瘓,網絡嚴重堵塞,HTTP和FTP服務完全停止,由此可見威力非同小可。

-f Set Don't Fragment flag in packet.

在資料包中發送“不要分段”标志。

在一般你所發送的資料包都會通過路由分段再發送給對方,加上此參數以後路由就不會再分段處理。

-i TTL Time To Live.

指定TTL值在對方的系統裡停留的時間。

此參數同樣是幫助你檢查網絡運轉情況的。

-v TOS Type Of Service.

将“服務類型”字段設定為 tos 指定的值。

-r count Record route for count hops.

在“記錄路由”字段中記錄傳出和傳回資料包的路由。

在一般情況下你發送的資料包是通過一個個路由才到達對方的,但到底是經過了哪些路由呢?通過此參數就可以設定你想探測經過的路由的個數,不過限制在了9個,也就是說你隻能跟蹤到9個路由,如果想探測更多,可以通過其他指令實作,我将在以後的文章中給大家講解。以下為示例:

C:\>ping -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