Ping
ping是個使用頻率極高的實用程序,用于确定本地主機是否能與另一台主機交換(發送與接收)數據報。根據返回的信息,你就可以推斷tcp/ip參數是否設置得正确以及運行是否正常。需要注意的是:成功地與另一台主機進行一次或兩次數據報交換并不表示tcp/ip配置就是正确的,你必須執行大量的本地主機與遠程主機的數據報交換,才能确信tcp/ip的正确性。
簡單的說,ping就是一個測試程序,如果ping運行正确,你大體上就可以排除網絡訪問層、網卡、modem的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的範圍。但由于可以自定義所發數據報的大小及無休止的高速發送,ping也被某些别有用心的人作為ddos(拒絕服務攻擊)的工具,前段時間yahoo就是被黑客利用數百台可以高速接入互聯網的電腦連續發送大量ping數據報而癱瘓的。
按照缺省設置,windows上運行的ping命令發送4個icmp(網間控制報文協議)回送請求,每個32字節數據,如果一切正常,你應能得到4個回送應答。
ping能夠以毫秒為單位顯示發送回送請求到返回回送應答之間的時間量。如果應答時間短,表示數據報不必通過太多的路由器或網絡連接速度比較快。ping還能顯示ttl(timetolive存在時間)值,你可以通過ttl值推算一下數據包已經通過了多少個路由器:源地點ttl起始值(就是比返回ttl略大的一個2的乘方數)-返回時ttl值。
例如,返回ttl值為119,那麼可以推算數據報離開源地址的ttl起始值為128,而源地點到目标地點要通過9個路由器網段(128-119);如果返回ttl值為246,ttl起始值就是256,源地點到目标地點要通過10個路由器網段。
正常情況下,當你使用ping命令來查找問題所在或檢驗網絡運行情況時,你需要使用許多ping命令,如果所有都運行正确,你就可以相信基本的連通性和配置參數沒有問題;如果某些ping命令出現運行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應的可能故障:
127001
——這個ping命令被送到本地計算機的ip軟件,該命令永不退出該計算機。如果沒有做到這一點,就表示tcp/ip的安裝或運行存在某些最基本的問題。
本機ip
——這個命令被送到你計算機所配置的ip地址,你的計算機始終都應該對該ping命令作出應答,如果沒有,則表示本地配置或安裝存在問題。出現此問題時,局域網用戶請斷開網絡電纜,然後重新發送該命令。如果網線斷開後本命令正确,則表示另一台計算機可能配置了相同的ip地址。
局域網ip
——這個命令應該離開你的計算機,經過網卡及網絡電纜到達其他計算機,再返回。收到回送應答表明本地網絡中的網卡和載體運行正确。但如果收到0個回送應答,那麼表示子網掩碼(進行子網分割時,将ip地址的網絡部分與主機部分分開的代碼)不正确或網卡配置錯誤或電纜系統有問題。
網關ip
——這個命令如果應答正确,表示局域網中的網關路由器正在運行并能夠作出應答。
遠程ip
——如果收到4個應答,表示成功的使用了缺省網關。對于撥号上網用戶則表示能夠成功的訪問internet(但不排除isp的dns會有問題)。
localhost
——localhost是個作系統的網絡保留名,它是127.0.0.1的别名,每台計算機都應該能夠将該名字轉換成該地址。如果沒有做到這一帶内,則表示主機文件(/windows/host)中存在問題。
wwwcom
——對這個域名執行ping命令,你的計算機必須先将域名轉換成ip地址,通常是通過dns服務器如果這裡出現故障,則表示dns服務器的ip地址配置不正确或dns服務器有故障(對于撥号上網用戶,某些isp已經不需要設置dns服務器了)。順便說一句:你也可以利用該命令實現域名對ip地址的轉換功能。
如果上面所列出的所有ping命令都能正常運行,那麼你對你的計算機進行本地和遠程通信的功能基本上就可以放心了。但是,這些命令的成功并不表示你所有的網絡配置都沒有問題,例如,某些子網掩碼錯誤就可能無法用這些方法檢測到。
常用選項
pingip-t——連續對ip地址執行ping命令,直到被用戶以ctrl+c中斷。
pingip-l2000——指定ping命令中的數據長度為2000字節,而不是缺省的32字節。
pingip-n——執行特定次數的ping命令。
netstat
netstat用于顯示與ip、tcp、udp和icmp協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
如果你的計算機有時候接受到的數據報會導緻出錯數據删除或故障,你不必感到奇怪,tcp/ip可以容許這些類型的錯誤,并能夠自動重發數據報。但如果累計的出錯情況數目占到所接收的ip數據報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用netstat查一查為什麼會出現這些情況了。
s
——本選項能夠按照各個協議分别顯示其統計數據。如果你的應用程序(如web浏覽器)運行速度比較慢,或者不能顯示web頁之類的數據,那麼你就可以用本選項來查看一下所顯示的信息。你需要仔細查看統計數據的各行,找到出錯的關鍵字,進而确定問題所在。
e
——本選項用于顯示關于以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、删除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)。
r
——本選項可以顯示關于路由表的信息,類似于後面所講使用routeprint命令時看到的信息。除了顯示有效路由外,還顯示當前有效的連接。
a
——本選項顯示一個所有的有效連接信息列表,包括已建立的連接(established),也包括監聽連接請求(listening)的那些連接。
n
——顯示所有已建立的有效連接。
妙用
經常上網的人一般都使用icq的,不知道你有沒有被一些讨厭的人騷擾得不敢上線,想投訴卻又不知從和下手?其實,你隻要知道對方的ip,就可以向他所屬的isp投訴了。但怎樣才能通過icq知道對方的ip呢?如果對方在設置icq時選擇了不顯示ip地址,那你是無法在信息欄中看到的。其實,你隻需要通過netstat就可以很方便的做到這一點:當他通過icq或其他的工具與你相連時(例如你給他發一條icq信息或他給你發一條信息),你立刻在dosprompt下輸入netstat-n或netstat-a就可以看到對方上網時所用的ip或isp域名了。甚至連所用port都完全暴露了,如果你想給他一些教訓,這些信息已經足夠……
ipconfig
ipconfig實用程序和它的等價圖形用戶界面——windows95/98中的winipcfg可用于顯示當前的tcp/ip配置的設置值。這些信息一般用來檢驗人工配置的tcp/ip設置是否正确。但是,如果你的計算機和所在的局域網使用了動态主機配置協議(dynamichostconfigurationprotocol,dhcp——windowsnt下的一種把較少的ip地址分配給較多主機使用的協議,類似于撥号上網的動态ip分配),這個程序所顯示的信息也許更加實用。這時,ipconfig可以讓你了解你的計算機是否成功的租用到一個ip地址,如果租用到則可以了解它當前分配到的是什麼地址。了解計算機當前的ip地址、子網掩碼和缺省網關實際上是進行測試和故障分析的必要項目。
ipconfig
——當使用ipconfig時不帶任何參數選項,那麼它為每個已經配置了的接口顯示ip地址、子網掩碼和缺省網關值
all
——當使用all選項時,ipconfig能為dns和wins服務器顯示它已配置且所要使用的附加信息(如ip地址等),并且顯示内置于本地網卡中的物理地址(mac)。如果ip地址是從dhcp服務器租用的,ipconfig将顯示dhcp服務器的ip地址和租用地址預計失效的日期(有關dhcp服務器的相關内容請詳見其他有關nt服務器的書籍或詢問你的網管),其輸出信息見圖6的下半部分。
附加選項
——這是兩個附加選項,隻能在向dhcp服務器租用其ip地址的計算機上起作用。如果你輸入ipconfig/release,那麼所有接口的租用ip地址便重新交付給dhcp服務器(歸還ip地址)。如果你輸入ipconfig/renew,那麼本地計算機便設法與dhcp服務器取得聯系,并租用一個ip地址。請注意,大多數情況下網卡将被重新賦予和以前所賦予的相同的ip地址。
如果你使用的是windows95/98,那麼你應該更習慣使用winipcfg而不是ipconfig,因為它是一個圖形用戶界面,而且所顯示的信息與ipconfig相同,并且也提供發布和更新動态ip地址的選項如果你購買了windowsntresourcekit(nt資源包),那麼windowsnt也包含了一個圖形替代界面,該實用程序的名字是wntipcfg,和windows95/98的winipcfg類似。
arp
arp是一個重要的tcp/ip協議,并且用于确定對應ip地址的網卡物理地址。實用arp命令,你能夠查看本地計算機或另一台計算機的arp高速緩存中的當前内容。此外,使用arp命令,也可以用人工方式輸入靜态的網卡物理/ip地址對,你可能會使用這種方式為缺省網關和本地服務器等常用主機進行這項作,有助于減少網絡上的信息量。
按照缺省設置,arp高速緩存中的項目是動态的,每當發送一個指定地點的數據報且高速緩存中不存在當前項目時,arp便會自動添加該項目。一旦高速緩存的項目被輸入,它們就已經開始走向失效狀态。例如,在windowsnt網絡中,如果輸入項目後不進一步使用,物理/ip地址對就會在2至10分鐘内失效。因此,如果arp高速緩存中項目很少或根本沒有時,請不要奇怪,通過另一台計算機或路由器的ping命令即可添加。所以,需要通過arp命令查看高速緩存中的内容時,請最好先ping此台計算機(不能是本機發送ping命令)。
a或g
——用于查看高速緩存中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是unix平台上用來顯示arp高速緩存中所有項目的選項,而windows用的是arp-a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。
aip
——如果你有多個網卡,那麼使用arp-a加上接口的ip地址,就可以隻顯示與該接口相關的arp緩存項目。
sip
物理地址——你可以向arp高速緩存中人工輸入一個靜态項目。該項目在計算機引導過程中将保持有效狀态,或者在出現錯誤時,人工配置的物理地址将自動更新該項目。
dip
——使用本命令能夠人工删除一個靜态項目。
看到這裡,你也許已經有些累了……其實對于一般用戶來說也已經足夠——你可以用ipconfig和ping命令來查看自己的網絡配置并判斷是否正确、可以用netstat查看别人與你所建立的連接并找出icq使用者所隐藏的ip信息、可以用arp查看網卡的mac地址——這些已足已讓你丢掉菜鳥的頭銜。如果你并不滿足,那就“硬着頭皮”(下面的内容可能有些枯燥)繼續followme……
tracert
分析
當數據報從你的計算機經過多個網關傳送到目的地時,tracert命令可以用來跟蹤數據報使用的路由(路徑)。該實用程序跟蹤的路徑是源計算機到目的地的一條路徑,不能保證或認為數據報總遵循這個路徑。如果你的配置使用dns,那麼你常常會從所産生的應答中得到城市、地址和常見通信公司的名字。tracert是一個運行得比較慢的命令(如果你指定的目标地址比較遠),每個路由器你大約需要給它15秒鐘
使用
很簡單,隻需要在tracert後面跟一個ip地址或url,tracert會進行相應的域名轉換的。tracert一般用來檢測故障的位置,你可以用tracertip在哪個環節上出了問題,雖然還是沒有确定是什麼問題,但它已經告訴了我們問題所在的地方,你也就可以很有把握的告訴别人——某某出了問題。
route
大多數主機一般都是駐留在隻連接一台路由器的網段上。由于隻有一台路由器,因此不存在使用哪一台路由器将數據報發表到遠程計算機上去的問題,該路由器的ip地址可作為該網段上所有計算機的缺省網關來輸入。
但是,當網絡上擁有兩個或多個路由器時,你就不一定想隻依賴缺省網關了。實際上你可能想讓你的某些遠程ip地址通過某個特定的路由器來傳遞,而其他的遠程ip則通過另一個路由器來傳遞。
在這種情況下,你需要相應的路由信息,這些信息儲存在路由表中,每個主機和每個路由器都配有自己獨一無二的路由表。大多數路由器使用專門的路由協議來交換和動态更新路由器之間的路由表。但在有些情況下,必須人工将項目添加到路由器和主機上的路由表中。route就是用來顯示、人工添加和修改路由表項目的。
——本命令用于顯示路由表中的當前項目,在單路由器網段上的輸出結果如圖12,由于用ip地址配置了網卡,因此所有的這些項目都是自動添加的。
add
——使用本命令,可以将信路由項目添加給路由表。例如,如果要設定一個到目的網絡209.98.32.33的路由,其間要經過5個路由器網段,首先要經過本地網絡上的一個路由器,器ip為202.96.123.5,子網掩碼為255.255.255.224,那麼你應該輸入以下命令:
routeadd209.98.32.33mask255.255.255.224202.96.123.5metric5
change
——你可以使用本命令來修改數據的傳輸路由,不過,你不能使用本命令來改變數據的目的地。下面這個例子可以将數據的路由改到另一個路由器,它采用一條包含3個網段的更直的路徑:
routeadd209.98.32.33mask255.255.255.224202.96.123.250metric3
delete
——使用本命令可以從路由表中删除路由。例如:routedelete209.98.32.33
nbtstat
nbtstat(tcp/ip上的netbios統計數據)實用程序用于提供關于關于netbios的統計數據。運用netbios,你可以查看本地計算機或遠程計算機上的netbios名字表格。
n
——顯示寄存在本地的名字和服務程序
c
——本命令用于顯示netbios名字高速緩存的内容。netbios名字高速緩存用于存放與本計算機進行通信的其他計算機的netbios名字和ip地址對。
r
——本命令用于清除和重新加載netbios名字高速緩存。
a-ip
——通過ip顯示另一台計算機的物理地址和名字列表,你所顯示的内容就像對方計算機自己運行nbtstat-n一樣
sip
——顯示實用其ip地址的另一台計算機的netbios連接表。
net
net命令有很多函數用于實用和核查計算機之間的netbios連接。這裡我隻介紹最常用的兩個:netview和netuse。
viewunc
——運用此命令,你可以查看目标服務器上的共享點名字。任何局域網裡的人都可以發出此命令,而且不需要提供用戶id或口令。unc名字總是以開頭,後面跟随目标計算機的名字。例如,netviewlx就是查看主機名為lx的計算機的共享點(見圖15)。
use
本地盤符目标計算機共享點——本命令用于建立或取消到達特定共享點的映像驅動器的連接(如果需要,你必須提供用戶id或口令)。例如,你輸入netusef:lxmp3就是将映像驅動器f:連接到lxmp3共享點上,今後你直接訪問f:就可以訪問lxmp3共享點,這和你右擊“我的電腦”選擇映射網絡驅動器類似。
nslookup
nslookup
可以指定查詢的類型,可以查到DNS記錄的生存時間還可以指定使用那個DNS服務器進行解釋。在已安裝TCP/IP協議的電腦上面均可以使用這個命令。主要用來診斷域名系統(DNS)基礎結構的信息。
運行cmd命令提示符直接輸入nslookup-q=mxcnbbx.com
命令格式:nslookup[-q:查詢的類型][需要查詢的域名不需要加HTTP://][域名服務器不填為本機默認]
以下是-q輸入的值
A地址記錄(Ipv4)
AAAA地址記錄(Ipv6)
AFSDBAndrew文件系統數據庫服務器記錄(不懂)
ATMAATM地址記錄(不是自動提款機)
CNAME别名記錄
HINFO硬件配置記錄,包括CPU、操作系統信息
ISDN域名對應的ISDN号碼
MB存放指定郵箱的服務器
MG郵件組記錄
MINFO郵件組和郵箱的信息記錄
MR改名的郵箱記錄
MX郵件服務器記錄
NS名字服務器記錄
PTR反向記錄(從IP地址解釋域名)
RP負責人記錄
RT路由穿透記錄(不懂)
SRVTCP服務器信息記錄(将有大用處)
TXT域名對應的文本信息
X25域名對應的X.25地址記錄



















