DOS,即使對于許多自稱了解計算機的人而言,也是一個比較陌生的詞彙。然而,在網絡管理過程中,DOS指令卻是一個不可逾越的障礙,幾乎所有的網絡指令都運作在DOS界面。對初級使用者而言,掌握一些常用網絡指令在網絡測試和配置操作中非常實用;對進階使用者而言,了解網絡指令的常用參數和使用技巧,可以擷取更多的配置和故障資訊,進而更好地、有針對性地解決問題。
ARP(Address Resolution Protocol)是負責将IP位址解析成MAC位址的協定,對于網絡中的高層應用程式,網絡主機之間的通訊是靠IP位址來完成,但在TCP/IP協定的最低層,主機之間的資訊交換則是通過MAC位址來定位的。每台裝有網卡的主機中都有一個ARP表,儲存着同一網絡中IP到MAC之間的映射記錄。ARP表并不是一成不變的,大約每2分鐘更新一`次,這種紀錄稱為動态式(Dyanmi)記錄。還有一種稱為靜态記錄,也就是表中的記錄不變,直到TCP/IP協定重新開機後才會消失。
ARP指令用于顯示和修改“位址解析協定(ARP)”緩存中的項目。ARP緩存中包含一個或多個表,它們用于存儲IP位址及其經過解析的以太網或令牌環網絡擴充卡的實體位址。計算機上安裝的每一個以太網或令牌環網絡擴充卡都有自己單獨的表。ARP指令可以對這個表中的記錄進行添加和修改,實作對ARP表的維護。如果使用ARP指令時不帶參數,則顯示幫助資訊。
執行個體1: 要檢視本機的ARP表,可以在指令提示符下鍵入如下指令:
ARP –a
回車,指令運作結果顯示如圖1所示。
圖1
這就是目前本機的ARP表中的記錄,也就是近一段時間内與本機通訊的主機。如圖中所示,Internet Address顯示的是IP位址,而Physical Address顯示的是該IP位址所對應的MAC位址。Type說明該記錄是動态記錄。
執行個體2:添加将IP位址192.168.0.9解析成實體位址00-50-BA-25-96-00的靜态ARP緩存項。在指令提示符下,鍵入如下指令:
arp -s 192.168.0.9 00-50-BA-25-96-00
回車執行該指令,該靜态項即添加完畢。然後執行arp -a指令查詢ARP表,顯示如圖14所示的記錄。
動态記錄
靜态記錄
圖2
ARP在添加靜态記錄之前,必須有一個MAC尋址的過程。當一個TCP/IP的包要發出時,會先檢視本機ARP表中的記錄是否有該IP的記錄。如果有,則直接轉換成該IP對應的MAC,如果沒有,則将發一個ARP Request廣播封包向對方查詢MAC位址,這個廣播包會被同一子網内的所有主機收到,但隻有與該IP相同的主機接收,并回答一個ARP APPLY封包,該包有相應IP與MAC的資訊,這樣就可以找到相應的主機的MAC位址。
在ARP表中的記錄一般是動态的,大約每2分鐘重新整理一次。如果本地主機有頻繁的IP要通路時,比如網關、代理伺服器、路由器等,為了減少發ARP Request廣播包,可以在ARP表中建立靜态記錄。
Ipconfig指令用于顯示本地網卡的IP位址,使用該指令,可以檢視目前所有的TCP/IP網絡配置值、重新整理動态主機配置協定(DHCP)和域名系統(DNS)設定。該指令隻能在Windows 98/Me/2000/XP的指令行視窗中運作,而不能在實模式DOS環境、或者Windows 2000/XP的故障恢複控制台下運作。而且Windows 98/Me與Windows 2000/XP系統下的Ipconfig指令之間也存在着一定的差別,下面分别以Windows XP和Windows 98為例進行比較和介紹。
通常,使用者需要檢視的僅僅是IP位址資訊,使用不帶參數的Ipconfig就可以顯示所有擴充卡的 IP 位址、子網路遮罩和預設網關。在指令提示符下鍵入如下指令:
Ipconfig
回車,會顯示如圖3所示運作結果。
圖3
該指令還可以檢視主機的相關配置資訊,如主機名、DNS伺服器、節點類型、網絡适配置器的實體位址等。其中網絡擴充卡的實體位址在檢測網絡錯誤時非常有用,而且在遠端喚醒網絡上的某台計算機時,也必須先知道該計算機網卡的實體位址,即網卡的Mac位址。由于每個網卡的Mac位址是全球唯一的,這樣就能很準确的定位到要喚醒的計算機。在Windows XP的指令提示符下,鍵入如下指令:
ipconfig /all
然後回車,運作結果顯示如圖4所示。
圖4
在Windows98下執行Ipconfig /all指令的結果和Windows XP下略有不同。在Windows98下的執行結果顯示如圖5所示。
配置資訊有效期
圖5
另外,在Windows 98/95作業系統中,檢視網絡配置資訊還可以使用Winipcfg指令,執行後提供圖形化界面。在Windows 98/95的MS-DOS視窗中鍵入如下指令:
Winipcfg
回車運作,顯示如圖6所示“IP配置”對話框,可以看到本機的網絡配置資訊。
單擊此處,可檢視不同網絡擴充卡的配置資訊
圖6
如果單擊“詳細資訊”按鈕,還可以檢視有關主機資訊、DNS伺服器資訊等,顯示如圖7所示對話框。
圖7
Nbtstat指令是Windows下自帶的NetBIOS管理工具,用于顯示本地計算機和遠端計算機的基于TCP/IP協定的NetBIOS統計資料、NetBIOS名稱表和NetBIOS名稱緩存。Nbtstat可以重新整理NetBIOS名稱緩存和注冊的Windows Internet名稱服務(WINS)名稱。如果使用不帶參數的Nbtstat指令,将會顯示有關該指令的幫助資訊。
而NetBIOS(Network Basic Input Output System,網絡基本輸入輸出系統),是區域網路 (LAN) 上的程式可以使用的應用程式程式設計接口(API),幾乎所有的區域網路計算機都是在NetBIOS基礎上工作的。NetBIOS為程式提供了請求低級服務的統一的指令集,這些服務是管理名稱、執行會話和在網絡節點之間發送資料報所要求的。
執行個體1:如果要顯示計算機名為liusm的遠端計算機的NetBIOS名稱表,在指令提示符下鍵入下面指令:
nbtstat -a liusm
回車運作後的執行結果顯示如圖8所示。
圖8
由此可以知道,計算機名為liusm的遠端計算機屬于MSHOME工作組,同時能獲得遠端計算機的網絡擴充卡的MAC位址(12-34-56-78-90-AB)。
執行個體2:顯示IP位址為211.82.219.211的遠端計算機的MAC位址和NetBIOS名稱表,可以在指令提示符下鍵入如下指令行:
nbtstat -a 211.82.219.211
回車運作後的結果顯示如圖9所示。
圖9
該指令的作用和執行個體1中的指令作用相同,這裡不再贅述。
執行個體3:顯示本地計算機的NetBIOS名稱表,可以在指令提示符下鍵入如下指令:
nbtstat -n
回車,運作後的結果顯示如圖10所示。
圖10
從執行結果中可以得知該計算機的NetBIOS名、所在域(或工作組)以及目前登入的使用者等資訊。
執行個體4:顯示本地計算機NetBIOS名稱緩存的内容,在指令提示符下鍵入如下指令:
nbtstat -c
回車運作後的結果顯示如圖11所示。
圖11
從上面的運作結果中可以看出,本地計算機曾經與211.82.216.x和211.82.219.x網段的計算機連接配接過。因為NetBIOS的緩存裡儲存的IP是對方已經信任你的計算機IP,因而這也給網絡安全帶來了隐患。
在伺服器與網絡的管理中,需要經常檢視伺服器所開放的端口、目前的所有連接配接,以便随時了解網絡狀态。這時就要用Netstat指令。該指令可以讓管理者輕松檢視計算機系統服務是否正常,是否被“黑客”留下後門、木馬等。Netstat同時也是一個實時的入侵檢測工具,可以随時檢視是否有不正常的連接配接。
Netstat指令用于顯示活動的TCP連接配接、計算機偵聽的端口、以太網統計資訊、IP路由表、IPv4統計資訊(對于IP、ICMP、TCP和UDP協定)。使用時如果不帶任何參數,Netstat指令将顯示活動的TCP連接配接。
執行個體1:顯示本機所有活動的TCP連接配接以及計算機偵聽的TCP和UDP端口。
在指令提示符下鍵入如下指令:
Netstat –a
回車,運作後的結果顯示如圖12所示:
圖12
從運作結果可以知道計算機目前開放的TCP和UDP端口,并與蠕蟲病毒和黑客程式的端口相對照,确認是否感染病毒或被惡意攻擊。
執行個體2:顯示目前活動的TCP/IP連接配接
Netstat -n 或者 Netstat(不帶任何參數)
回車,運作後的結果顯示如圖13所示:
圖13
該圖中顯示計算機的目前連接配接情況,來訪者的IP與連接配接端口一覽無遺。該指令與使用-a參數不同的是,這裡隻以IP的形式來表示目前的所有連接配接,而不解析對方的NetBIOS名字。
執行個體3:顯示以太網統計資訊和所有協定的統計資訊
Netstat -s-e
回車,運作後的結果顯示如圖14所示。
圖14
執行個體4:檢查路由表确定路由配置情況
在指令提示符下鍵入如下指令,
Netstat -rn
回車,運作後的結果顯示如圖15所示。
圖15
在網絡中,經常會出現網絡不通等問題,這就需要網絡管理者來檢查并排除網絡故障,包括檢查網絡配置資訊,檢查硬體連接配接,使用網絡指令測試等,而在指令檢測中,用得最多的就是Ping指令了。
Ping是使用最頻繁的網絡測試指令,主要用于确定網絡的連通性。Ping程式使用ICMP協定來簡單地發送一個網絡包并請求應答,接收請求的目标主機再次使用ICMP傳回與接收的資料一樣的資料包,于是Ping便可根據每個包發送和接收報告的往返時間,報告無響應包的百分比,這可以判斷網絡是否正确連接配接,以及網絡連接配接的狀況(丢包率)。
Ping是Windows作業系統內建的TCP/IP應用程式之一,通常在指令提示符下運作。利用Ping指令可以有效地測試網絡連通故障,并可确定網絡故障發生的大緻原因,下面就來看看該指令的簡單應用。
Ping本地計算機的IP位址或127.0.0.1,可以确認:
l 該計算機是否正确安裝了網卡。如果測試不成功,應當在“裝置管理器”中檢視網卡是否有黃色的“!”。如果有,則删除該網卡或重新正确安裝。如果沒有,說明網卡安裝正确。
l 該計算機是否正确安裝了TCP/IP協定。如果測試不成功,應打開控制台的“網絡”屬性檢視是否安裝TCP/IP協定。如果沒有,則需安裝TCP/IP協定并正确配置後,重新啟動計算機并再次測試。如果已經安裝,繼續向下檢查。
l 該計算機是否正确配置了IP位址和子網路遮罩。如果測試不成功,應打開控制台的“網絡”屬性檢視IP位址和子網路遮罩是否設定正确。如果不正确,需重新設定,重新啟動計算機并再次測試。
Ping同一VLAN中其他計算機的位址,可以确認:
l IP位址、子網路遮罩的設定是否正确。如果測試不成功,應打開控制台的“網絡”屬性檢視IP位址和子網路遮罩是否設定正确。如果設定不正确,需重新設定,重新啟動計算機并再次測試。如果設定正确,繼續向下檢查。
l 網絡連接配接是否正常。如果測試不成功,應當對網絡裝置和通訊媒體逐段測試、檢查和排除。
Ping Internet中遠端主機的位址,可以确認:
l 網關的設定是否正确。如果測試不成功,應打開控制台的“網絡”屬性檢視預設網關設定是否正确。如果不正确,需重新設定,然後重新啟動計算機并再次測試。如果設定正确,繼續向下檢查。
l 域名伺服器設定是否正常。如果使用域名測試不成功,應打開控制台的“網絡”屬性檢視域名伺服器(DNS)設定是否正确。如果正确,繼續向下檢查。
l 路由器的配置是否正确。如果該計算機被加入到禁止出站通路的IP控制清單中,那麼,該使用者将無法通路Internet。
l Internet連接配接是否正常。如果到任何一個主機的連接配接都逾時,或丢包率都非常高,則應當與ISP共同檢查Internet連接配接,包括線路、Modem和路由器設定等諸多方面。
常見的出錯資訊通常分為四種情況:
● unknown host
unknown host(不知名主機)表示該遠端主機名不能被命名伺服器轉換成IP位址。故障原因可能是命名伺服器有故障,或者其名稱不正确,或者網絡管理者的系統與遠端主機之間的通信線路有故障。
● Network unreachable
Network unreachable(網絡不能到達)表示本地系統沒有到達遠端系統的路由,可用netstat –rn指令檢查路由表來确定路由配置情況。
● No answer
No answer(無響應),遠端系統沒有響應。這種說明本地系統有一條到達遠端主機的路由,但卻接受不到它發給該遠端主機的任何分組封包。故障原因可能是遠端主機沒有工作,或本地或遠端主機網絡配置不正确,或本地或遠端的路由器沒有工作,或通信線路有故障,或遠端主機存在路由選擇問題。
● timed out
timed out(逾時),表示與遠端主機的連結逾時,資料包全部丢失。故障原因可能是到路由器的連接配接問題、路由器不能通過、也可能是遠端主機已經當機。
在“Ping指令的應用”一節,詳細介紹了Ping指令的應用,當出現網絡故障時,通常就是使用所介紹的順序進行網絡故障診斷與排除;在出現的Ping的結果中,分析網絡的連通性,找出故障所在,進而在故障排除過程中做到有的放矢。下面就Ping指令的實際應用列舉幾個簡單的例子。
執行個體1:以下範例顯示Ping的輸出:
Ping [url]www.coolpen.org[/url]
回車執行,如果顯示如圖16所示的運作結果,則表明連接配接正常,所有發送的包均被成功接收,丢包率為0。
圖16
這裡對測試結果中的一些資料作簡單解釋:
Pinging [url]www.coolpen.org[/url] [61.159.62.166] with 32 bytes of data
這裡的“32 bytes”中的“32”指的是發送的消息,及回響的消息資料字段值為32位元組。
Reply from 61.159.62.166: bytes=32 time=44ms TTL=113
這裡的“44ms”,指的是從發送資料到收到回響所經曆的時間,該時間值一般有一定限制,當相應時間超過4000ms(即4s)時,将顯示連接配接逾時。
“TTL=113”,這裡的TTL值預設為對方主機的TTL值,根據TTL值一般可以确定該計算機使用哪種作業系統。對于使用Windows XP/2000的計算機,該值一般為128;Windows 98計算機的TTL值一般為64,Unix計算機機的TTL值一般為255。不過在系統資料庫中可以随意改變TTL值,是以利用該值來确定主機的作業系統并不一定準确。
如果執行如下指令:
Ping [url]www.coolpen.com[/url]
顯示如圖17所示測試消息,則表明網絡連接配接不正常,或對方對ICMP包作了過濾,是以,所有發送的包均未被成功接收,丢包率為100%,目的主機不可到達。
圖17
執行個體2:如果網絡Ping不通,在裝置或線路調試期間,可以使用“-t”參數一直進行測試。隻要按下“Ctrl-C”組合鍵中止該指令為止。
Ping -t [url]www.coolpen.net[/url]
回車運作,指令執行結果顯示如圖18所示。
圖18
執行個體3:
若欲測試代理伺服器或路由器的性能,可以使用大字段的消息值,進而增加網絡流量。需要注意的是,“資料”字段長度(以位元組表示)預設值為 32,指定的資料包不能大于65527。
<a href="http://www.coolpen.net/"></a>
<a href="http://www.hengshui.com/"></a>
<a href="http://www.hengshui.com/">圖20</a>
<a href="http://www.hengshui.com/"> </a>
<a href="http://www.hengshui.com/">當資料報從本地計算機經過多個網關傳送到目的地時,它會尋找一條具體路徑來傳送,每次傳送資料報,不能保證或認為總遵循唯一的一條路經。那麼如何知道發送的資料報所經過的路徑呢?這時就要用到Tracert指令。Tracert指令同樣是内置于Windows的TCP/IP應用程式之一,可以對IP位址或URL進行相應的域名轉換。Tracert一般用來檢測故障的位置,通過追蹤路由,可以判斷發生故障的路由裝置或網關,以及發生故障的區段,進而便于查找和排除故障。</a>
<a href="http://www.hengshui.com/">Tracert診斷實用程式将包含不同生存時間(TTL)值的Internet消息控制協定(ICMP)回顯資料包發送到目标,以決定到達目标使用的路由。要在轉發資料包上的TTL之前至少遞減1,必需路徑上的每個路由器,是以TTL是有效的躍點計數。資料包上的TTL達到0時,路由器應該将“ICMP已逾時”的消息發送回源系統。Tracert先發送TTL為1的回顯資料包,并在随後的每次發送過程将TTL遞增1,直到目标響應或TTL達到最大值,進而确定路由。路由通過檢查中級路由器傳回的“ICMP 已逾時”的消息來确定路由。不過,有些路由器下傳包含過期TTL值的資料包,而Tracert看不到。</a>
<a href="http://www.hengshui.com/">執行個體1:追蹤到[url]www.hengshui.com[/url]的路由,測試區域網路絡和Internet連接配接是否正常,以及導緻故障發生的路由器的位置。</a>
<a href="http://www.hengshui.com/">在指令提示符下執行如下指令行:</a>
<a href="http://www.hengshui.com/">Tracert [url]www.hengshui.com[/url]</a>
<a href="http://www.hengshui.com/">指令執行結果顯示如圖21所示,從運作結果可知,區域網路絡和Internet連接配接均正常。</a>
<a href="http://www.hengshui.com/">圖21</a>
<a href="http://www.hengshui.com/">大多數主機都駐留在隻連接配接一台路由器的網段上,是以不存在使用哪一台路由器将資料報發表到遠端計算機上的問題,該路由器的IP位址即是該網段上所有計算機的預設網關。但是,當網絡上擁有兩個或多個路由器時,就不一定隻依賴預設網關了。可以讓某些遠端IP位址通過某個特定的路由器來傳遞,而其他的遠端IP通過另一個路由器來傳遞。這時,需要相應的路由資訊,這些資訊儲存在路由表中,每個主機和每個路由器都配有自己獨一無二的路由表。大多數路由器使用專門的路由協定來交換和動态更新路由器之間的路由表。但在有些情況下,必須手動将項目添加到路由器和主機上的路由表中。這時就要用到Route指令,它用來顯示、人工添加和修改路由表項目。</a>
<a href="http://www.hengshui.com/">如果要檢視Route指令的幫助資訊,可在指令提示符下運作不帶任何參數的Route指令。</a>
<a href="http://www.hengshui.com/">下面就通過幾個簡單的執行個體,來具體看一看Route指令的簡單應用。</a>
<a href="http://www.hengshui.com/">執行個體1:顯示路由表中的目前項目</a>
<a href="http://www.hengshui.com/">在指令提示符下,鍵入如下指令行:</a>
<a href="http://www.hengshui.com/">Route print</a>
<a href="http://www.hengshui.com/">回車,指令的執行結果顯示如圖22所示。</a>
<a href="http://www.hengshui.com/">圖22</a>
<a href="http://www.hengshui.com/">由于用IP位址配置了網卡,是以所有的這些項目都是自動添加的。</a>
<a href="http://www.hengshui.com/">執行個體2:顯示IP路由表中以211開始的路由</a>
<a href="http://www.hengshui.com/">在指令提示符下鍵入如下指令:</a>
<a href="http://www.hengshui.com/">Route print 211.*</a>
<a href="http://www.hengshui.com/">回車,運作結果顯示如圖23所示。</a>
<a href="http://www.hengshui.com/">圖23</a>
<a href="http://www.hengshui.com/">執行個體3:利用route可以在計算機中設定多個預設網關。例如,對192.168.0.0網段的通路使用192.168.0.1網關,對其他網段的通路則使用192.168.1.1網關。那麼,可以執行以下指令:</a>
<a href="http://www.hengshui.com/">route add 192.168.0.0 mask 255.255.255.0 192.168.0.1</a>
<a href="http://www.hengshui.com/">route add 0.0.0.0 mask 0.0.0.0 192.168.1.1</a>