netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,能夠讓用戶得知現(xiàn)在都有哪些網(wǎng)絡(luò)連接正在運作。 該命令的一般格式為: netstat [選項] 命令中各選項的含義如下: -a 顯示任何socket,包括正在監(jiān)聽的。 -c 每隔1秒就重新顯示一遍,直到用戶中斷他。 -i 顯示任何網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。 -n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。 -r 顯示核心路由表,格式同“route -e”。 -t 顯示TCP協(xié)議的連接情況。 -u 顯示UDP協(xié)議的連接情況。 -v 顯示正在進(jìn)行的工作。 netstat命令是個監(jiān)控TCP/IP網(wǎng)絡(luò)的很有用的工具,他能夠顯示路由表、實際的網(wǎng)絡(luò)連接連同每一個網(wǎng)絡(luò)接口設(shè)備的狀態(tài)信息,在我的上執(zhí)行netstat后,其輸出結(jié)果為: Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM CONNECTED 16178 @000000dd unix 1 [ ] STREAM CONNECTED 16176 @000000dc unix 9 [ ] DGRAM 5292 /dev/log unix 1 [ ] STREAM CONNECTED 16182 @000000df 從 整體上看,netstat的輸出結(jié)果能夠分為兩個部分,一個是Active Internet connections,稱為有源TCP連接,另一個是Active UNIX domain sockets,稱為有源Unix域套接口。在上面的輸出結(jié)果中,第一部分有5個輸出結(jié)果,顯示有源TCP連接的情況,而第二部分的輸出結(jié)果顯示的是 Unix域套接口的連接情況。Proto顯示連接使用的協(xié)議;RefCnt表示連接到本套接口上的進(jìn)程號;Types顯示套接口的類型;State顯示套 接口當(dāng)前的狀態(tài);Path表示連接到套接口的其他進(jìn)程使用的路徑名。 事實上,netstat是若干個工具的匯總。 ◆ 顯示路由表 在隨- r標(biāo)記一起調(diào)用n e t s t a t時,將顯示內(nèi)核路由表,就像我們利用r o u t e命令相同。產(chǎn)生的輸出如下: [root@machine1 /]$ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth0 - n 選項令netstat以點分四段式的形式輸出IP地址,而不是象征性的主機(jī)名和網(wǎng)絡(luò)名。假如想避免通過網(wǎng)絡(luò)查找地址(比如避開DNS或NIS服務(wù)器),這一點是特別有用的。 netstat 輸出結(jié)果中,第二列展示的是路由條目所指的網(wǎng)關(guān),假如沒有使用網(wǎng)關(guān),就會出現(xiàn)一個星號(*)或0.0.0.0;第三列展示路由的概述,在為具體的I P地址找出最恰當(dāng)?shù)穆酚蓵r,內(nèi)核將查看路由表內(nèi)的任何條目,在對找到的路由和目標(biāo)路由比較之前,將對I P地址和genmask進(jìn)行按位“和”計算;第四列顯示了不同的標(biāo)記,這些標(biāo)記的說明如下: ■ G 路由將采用網(wǎng)關(guān)。 ■ U 準(zhǔn)備使用的接口處于“活動”狀態(tài)。 ■ H 通過該路由,只能抵達(dá)一臺主機(jī)。 ■ D 假如路由表的條目是由ICMP重定向消息生成的,就會配置這個標(biāo)記。 ■ M 假如路由表條目已被ICMP重定向消息修改,就會配置這個標(biāo)記。 netstat輸出結(jié)果的Iface顯示該連接所用的物理網(wǎng)卡,如eth0表示用第一張,eth1表示用第二張。 ◆ 顯示接口特性 在隨- i標(biāo)記一起調(diào)用時, netstat將顯示網(wǎng)絡(luò)接口的當(dāng)前配置特性。除此以外,假如調(diào)用時還帶上-a選項,他還將輸出內(nèi)核中任何接口,并不只是當(dāng)前配置的接口。netstat-i的輸出結(jié)果是這樣的: [root@machine1 /]$ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 787165 0 0 1 51655 0 0 0 BRU eth1 1500 0 520811 0 0 0 1986 0 0 0 BRU lo 3924 0 1943 0 0 0 43 0 0 0 LRU MTU 和Met字段表示的是接口的MTU和度量值值;RX和TX這兩列表示的是已準(zhǔn)確無誤地收發(fā)了多少數(shù)據(jù)包( RX - OK / TX - OK)、產(chǎn)生了多少錯誤( RX-ERR/TX-ERR)、丟棄了多少包(RX-DRP/TX-DRP),由于誤差而遺失了多少包(RX-OVR/TX-OVR);最后一列展示的是 為這個接口配置的標(biāo)記,在利用ifconfig顯示接口配置時,這些標(biāo)記都采用一個字母。他們的說明如下: ■ B 已配置了一個廣播地址。 ■ L 該接口是個回送設(shè)備。 ■ M 接收任何數(shù)據(jù)包(混亂模式)。 ■ N 避免跟蹤。 ■ O 在該接口上,禁用A R P。 ■ P 這是個點到點鏈接。 ■ R 接口正在運行。 ■ U 接口處于“活動”狀態(tài)。 ◆ 顯示鏈接 netstat 支持用于顯示活動或被動套接字的選項集。選項- t、- u、- w和- x分別表示TCP、UDP、RAW和UNIX套接字連接。假如您另外還提供了一個- a標(biāo)記,還會顯示出等待連接(也就是說處于監(jiān)聽模式)的套接字。這樣就能夠得到一份服務(wù)器清單,當(dāng)前任何運行于系統(tǒng)中的任何服務(wù)器都會列入其中。 調(diào)用netstat -ta時,輸出結(jié)果如下: [root@machine1 /]$ netstat -ta Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED tcp 0 0 *:9001 *:* LISTEN tcp 0 0 *:6000 *:* LISTEN tcp 0 0 *:socks *:* LISTEN tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE 上 面的輸出表明部分服務(wù)器處于等待接入連接狀態(tài)。利用- a選項的話,netstat還會顯示出任何的套接字。注意根據(jù)端口號,能夠判斷出一條連接是否是外出連接。對呼叫方主機(jī)來說,列出的端口號應(yīng)該一直是個 整數(shù),而對眾所周知服務(wù)(well known service)端口正在使用中的被呼叫方來說,netstat采用的則是取自/etc/services文檔的象征性服務(wù)名。 Netstat 命令的使用技巧 Netstat用于顯示和IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計數(shù)據(jù),一般用于檢驗本機(jī)各端口的網(wǎng)絡(luò)連接情況。 假如我們的電腦有時候接受到的數(shù)據(jù)報會導(dǎo)致出錯數(shù)據(jù)刪除或故障,我們不必感到奇怪,TCP/IP能夠容許這些類型的錯誤,并能夠自動重發(fā)數(shù)據(jù)報。但假如 累計的出錯情況數(shù)目占到所接收的IP數(shù)據(jù)報相當(dāng)大的百分比,或他的數(shù)目正迅速增加,那么我們就應(yīng)該使用Netstat查一查為什么會出現(xiàn)這些情況了。 1、netstat 的一些常用選項 ?netstat ?s 本選項能夠按照各個協(xié)議分別顯示其統(tǒng)計數(shù)據(jù)。假如我們的應(yīng)用程式(如Web瀏覽器)運行速度比較慢,或不能顯示W(wǎng)eb頁之類的數(shù)據(jù),那么我們就能夠用本選項來查看一下所顯示的信息。我們需要仔細(xì)查看統(tǒng)計數(shù)據(jù)的各行,找到出錯的關(guān)鍵字,進(jìn)而確定問題所在。 ?netstat ?e 本選項用于顯示關(guān)于以太網(wǎng)的統(tǒng)計數(shù)據(jù)。他列出的項目包括傳送的數(shù)據(jù)報的總字節(jié)數(shù)、錯誤數(shù)、刪除數(shù)、數(shù)據(jù)報的數(shù)量和廣播的數(shù)量。這些統(tǒng)計數(shù)據(jù)既有發(fā)送的數(shù)據(jù)報數(shù)量,也有接收的數(shù)據(jù)報數(shù)量。這個選項能夠用來統(tǒng)計一些基本的網(wǎng)絡(luò)流量)。 ?netstat ?r 本選項能夠顯示關(guān)于路由表的信息,類似于后面所講使用route print命令時看到的 信息。除了顯示有效路由外,還顯示當(dāng)前有效的連接。 ?netstat ?a 本選項顯示一個任何的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監(jiān)聽連接請求(LISTENING)的那些連接。 ?netstat ?n 顯示任何已建立的有效連接。 |