Netstat

Netstat

在Internet RFC標準中,Netstat的定義是: Netstat是在核心中訪問網路連線狀態及其相關信息的程式,它能提供TCP連線,TCP和UDP監聽,進程記憶體管理的相關報告。

Netstat是控制台命令,是一個監控TCP/IP網路的非常有用的工具,它可以顯示路由表、實際的網路連線以及每一個網路接口設備的狀態信息。Netstat用於顯示與IP、TCPUDPICMP協定相關的統計數據,一般用於檢驗本機各連線埠的網路連線情況。

如果你的計算機有時候接收到的數據包導致出錯數據或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,並能夠自動重發數據包。但如果累計的出錯情況數目占到所接收的IP數據報相當大的百分比,或者它的數目正迅速增加,那么你就應該使用Netstat查一查為什麼會出現這些情況了。

一般用netstat -an 來顯示所有連線的連線埠並用數字表示。

netstat命令的功能是顯示網路連線、路由表和網路接口信息,可以讓用戶得知有哪些網路連線正在運作。使用時如果不帶參數,netstat顯示活動的 TCP 連線。

基本介紹

格式,選項,列標題,常用選項,常見狀態,LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT,CLOSED,命令示例,實錄,詳細信息,相關,補充,

格式

該命令的一般格式為 :
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]

選項

命令中各選項的含義如下:
-a 顯示所有socket,包括正在監聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網路接口的信息,格式“netstat -i”。
-n 以網路IP位址代替名稱,顯示出網路連線情形。
-r顯示核心路由表,格式同“route -e”。
-t 顯示TCP協定的連線情況
-u 顯示UDP協定的連線情況。
-v 顯示正在進行的工作。
-p 顯示建立相關連線的程式名和PID。
-b 顯示在創建每個連線或偵聽連線埠時涉及的可執行程式。
-e 顯示乙太網統計。此選項可以與 -s 選項結合使用。
-f 顯示外部地址的完全限定域名(FQDN)。
-o顯示與與網路計時器相關的信息。
Netstat
-s 顯示每個協定的統計。
-x 顯示 NetworkDirect 連線、偵聽器和共享端點。
-y 顯示所有連線的 TCP 連線模板。無法與其他選項結合使用。
interval 重新顯示選定的統計,各個顯示間暫停的 間隔秒數。按 CTRL+C 停止重新顯示統計。如果省略,則 netstat 將列印當前的配置信息一次。

列標題

Name接口的名字
Netstat
Mtu 接口的最大傳輸單位
Net/Dest 接口所在的網路
Address 接口的IP位址
Ipkts 接收到的數據包數目
Ierrs 接收到時已損壞的數據包數目
Opkts 傳送的數據包數目
Oeers 傳送時已損壞的數據包數目
Collisions 由這個接口所記錄的網路衝突數目

常用選項

netstat -a
——本選項顯示一個所有的有效連線信息列表,包括已建立的連線(ESTABLISHED),也包括監聽連線請求(LISTENING)的那些連線。
netstat -b
該參數可顯示在創建網路連線和偵聽連線埠時所涉及的可執行程式。
netstat -s
——本選項能夠按照各個協定分別顯示其統計數據。如果你的應用程式(如Web瀏覽器)運行速度比較慢,或者不能顯示Web頁之類的數據,那么你就可以用本選項來查看一下所顯示的信息。你需要仔細查看統計數據的各行,找到出錯的關鍵字,進而確定問題所在。
netstat -e
——本選項用於顯示關於乙太網的統計數據,它列出的項目包括傳送數據報的總位元組數、錯誤數、刪除數,包括傳送和接收量(如傳送和接收的位元組數、數據包數),或有廣播的數量。可以用來統計一些基本的網路流量。
netstat -r
——本選項可以顯示關於路由表的信息,類似於後面所講使用routeprint命令時看到的信息。除了顯示有效路由外,還顯示當前有效的連線
netstat -n
——顯示所有已建立的有效連線。
netstat -p
——顯示協定名查看某協定使用情況
Netstat

常見狀態

即連線狀態。在原模式中沒有狀態,在用戶數據報協定中也經常沒有狀態,於是狀態列可以空出來。若有狀態,通常取值為:

LISTEN

偵聽來自遠方的TCP連線埠的連線請求

SYN-SENT

在傳送連線請求後等待匹配的連線請求

SYN-RECEIVED

在收到和傳送一個連線請求後等待對方對連線請求的確認

ESTABLISHED

代表一個打開的連線

FIN-WAIT-1

等待遠程TCP連線中斷請求,或先前的連線中斷請求的確認

FIN-WAIT-2

從遠程TCP等待連線中斷請求

CLOSE-WAIT

等待從本地用戶發來的連線中斷請求

CLOSING

等待遠程TCP對連線中斷的確認

LAST-ACK

等待原來的發向遠程TCP的連線中斷請求的確認

TIME-WAIT

等待足夠的時間以確保遠程TCP接收到連線中斷請求的確認

CLOSED

沒有任何連線狀態

命令示例

該命令(Winxp下)的一般格式為 :
C:\>netstat /?
顯示協定統計信息和當前 TCP/IP網路連線。
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v]
-a 顯示所有連線和監聽連線埠
-b 顯示包含於創建每個連線或監聽連線埠的可執行組件。在某些情況下已知可執行組件
擁有多個獨立組件,並且在這些情況下包含於創建連線或監聽連線埠的組件序列被顯示。
這種情況下,可執行組件名在底部的 [] 中,頂部是其調用的組件,等等,直到 TCP/IP
部分。注意此選項可能需要很長時間,如果沒有足夠許可權可能失敗。
-e 顯示乙太網統計信息。此選項可以與 -s選項組合使用
-n 以數字形式顯示地址和連線埠號。 此選項可以與 -a選項組合使用
-o 顯示與每個連線相關的所屬進程 ID。
-p proto 顯示 proto 指定的協定的連線;proto 可以是
下列協定之一: TCP、UDP、TCPv6 或 UDPv6。
如果與 -s 選項一起使用以顯示按協定統計信息,proto 可以是下列協定之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示按協定統計信息。默認地,顯示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計信息;
-p 選項用於指定默認情況的子集。
-v 與 -b 選項一起使用時將顯示包含於為所有可執行組件創建連線或監聽連線埠的組件
interval 重新顯示選定統計信息,每次顯示之間
暫停時間間隔(以秒計)。按 CTRL+C 停止重新
顯示統計信息。如果省略,netstat 顯示當前
配置信息(只顯示一次)
該命令(Win2000下)的一般格式為 :
C:\>netstat /?
Displays protocol statistics and current TCP/IP network connections.
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r]
-a Displays all connections and listening ports.
-e Displays Ethernet statistics. This may be combined with the -s
option.
-n Displays addresses and port numbers in numerical form.
-p proto Shows connections for the protocol specified by proto; proto
may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto may be TCP, UDP, or IP.
-r Displays the routing table.
-s Displays per-protocol statistics. By default, statistics are
shown for TCP, UDP and IP; the -p option may be used to specify
a subset of the default.
interval Redisplays selected statistics, pausing interval seconds
between each display. Press CTRL+C to stop redisplaying
statistics. If omitted, netstat will print the current
configuration information once
微軟公司故意將這個功能強大的命令隱藏起來是因為它對於普通用戶來說有些複雜。我們已經知道:Netstat它可以用來獲得你的系統網路連線的信息(使用的連線埠,在使用的協定等 ),收到和發出的數據,被連線的遠程系統的連線埠,Netstat在記憶體中讀取所有的網路信息。

實錄

用實例詳細的解釋一下各個參數的使用:
C:\>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP Eagle:ftp Eagle:0 LISTENING
TCP Eagle:telnet Eagle:0 LISTENING
TCP Eagle:smtp Eagle:0 LISTENING
TCP Eagle:http Eagle:0 LISTENING
TCP Eagle:epmap Eagle:0 LISTENING
TCP Eagle:https Eagle:0 LISTENING
TCP Eagle:microsoft-ds Eagle:0 LISTENING
TCP Eagle:1030 Eagle:0 LISTENING
TCP Eagle:6059 Eagle:0 LISTENING
TCP Eagle:8001 Eagle:0 LISTENING
TCP Eagle:8005 Eagle:0 LISTENING
TCP Eagle:8065 Eagle:0 LISTENING
TCP Eagle:microsoft-ds localhost:1031 ESTABLISHED
TCP Eagle:1031 localhost:microsoft-ds ESTABLISHED
TCP Eagle:1040 Eagle:0 LISTENING
TCP Eagle:netbios-ssn Eagle:0 LISTENING
TCP Eagle:1213 218.85.139.65:9002 CLOSE_WAIT
TCP Eagle:2416 219.133.63.142:https CLOSE_WAIT
TCP Eagle:2443 219.133.63.142:https CLOSE_WAIT
TCP Eagle:2907 192.168.1.101:2774 CLOSE_WAIT
TCP Eagle:2916 192.168.1.101:telnet ESTABLISHED
TCP Eagle:2927 219.137.227.10:4899 TIME_WAIT
TCP Eagle:2928 219.137.227.10:4899 TIME_WAIT
TCP Eagle:2929 219.137.227.10:4899 ESTABLISHED
TCP Eagle:3455 218.85.139.65:9002 ESTABLISHED
TCP Eagle:netbios-ssn Eagle:0 LISTENING
UDP Eagle:microsoft-ds *:*
UDP Eagle:1046 *:*
UDP Eagle:1050 *:*
UDP Eagle:1073 *:*
UDP Eagle:1938 *:*
UDP Eagle:2314 *:*
UDP Eagle:2399 *:*
UDP Eagle:2413 *:*
UDP Eagle:2904 *:*
UDP Eagle:2908 *:*
UDP Eagle:3456 *:*
UDP Eagle:4000 *:*
UDP Eagle:4001 *:*
UDP Eagle:6000 *:*
UDP Eagle:6001 *:*
UDP Eagle:6002 *:*
UDP Eagle:6003 *:*
UDP Eagle:6004 *:*
UDP Eagle:6005 *:*
UDP Eagle:6006 *:*
UDP Eagle:6007 *:*
UDP Eagle:6008 *:*
UDP Eagle:6009 *:*
UDP Eagle:6010 *:*
UDP Eagle:6011 *:*
UDP Eagle:1045 *:*
UDP Eagle:1051 *:*
UDP Eagle:netbios-ns *:*
UDP Eagle:netbios-dgm *:*
UDP Eagle:netbios-ns *:*
UDP Eagle:netbios-dgm *:*

詳細信息

我們拿其中一行來解釋吧:
Proto Local Address Foreign Address State
TCP Eagle:2929 219.137.227.10:4899 ESTABLISHED
協定(Proto):TCP,指是傳輸控制協定。
本地機器名(Local Address):Eagle,俗稱計算機名,安裝系統時設定的,可以在“我的電腦”屬性中修改,本地打開並用於連線的連線埠:2929)
遠程機器名(Foreign Address):219.137.227.10
遠程連線埠:4899
狀態:ESTABLISHED
狀態列表
LISTEN :在監聽狀態中。
ESTABLISHED:已建立在線上的在線上情況。
-a 參數常用於獲得你的本地系統開放的連線埠,用它您可以自己檢查你的系統上有沒有被安裝木馬
如果您Netstat你自己的話,發現下面的信息:
Port 12345(TCP) Netbus
Port 31337(UDP) Back Orifice

相關

繼續我們的探討,使用-n參數。(Netstat -n)
Netstat -n基本上是-a參數的數字形式:
C:\>netstat -n
Active Connections
Proto Local Address Foreign Address State
TCP 127.0.0.1:445 127.0.0.1:1031 ESTABLISHED
TCP 127.0.0.1:1031 127.0.0.1:445 ESTABLISHED
TCP 192.168.1.180:1213 218.85.139.65:9002 CLOSE_WAIT
TCP 192.168.1.180:2416 219.133.63.142:443 CLOSE_WAIT
TCP 192.168.1.180:2443 219.133.63.142:443 CLOSE_WAIT
TCP 192.168.1.180:2907 192.168.1.101:2774 CLOSE_WAIT
TCP 192.168.1.180:2916 192.168.1.101:23 ESTABLISHED
TCP 192.168.1.180:2929 219.137.227.10:4899 ESTABLISHED
TCP 192.168.1.180:3048 192.168.1.1:8004 SYN_SENT
TCP 192.168.1.180:3455 218.85.139.65:9002 ESTABLISHED
-a 和 -n 是最常用的兩個,據我不完全測試得出以下結果:
1. -n 顯示用數位化主機名,即IP位址,而不是compute_name【eagle】
2. -n 只顯示TCP連線
得到IP等於得到一切,它是最容易使機器受到攻擊的東西,所以隱藏自己IP,獲得別人的IP對hacker來說非常重要.
-a 和 -n 是最常用的命令,如果要顯示一些協定的更詳細信息,就要用-p這個參數了,它其實是-a 和 -n的一個變種,我們來看一個實例,你就明白了:【netstat -p @@@ 其中@@@為TCP或者UDP】
C:\>netstat -ptcp
Active Connections
Proto Local Address Foreign Address State
TCP Eagle:microsoft-ds localhost:1031 ESTABLISHED
TCP Eagle:1031 localhost:microsoft-ds ESTABLISHED
TCP Eagle:1213 218.85.139.65:9002 CLOSE_WAIT
TCP Eagle:2416 219.133.63.142:https CLOSE_WAIT
TCP Eagle:2443 219.133.63.142:https CLOSE_WAIT
TCP Eagle:2907 192.168.1.101:2774 CLOSE_WAIT
TCP Eagle:2916 192.168.1.101:telnet ESTABLISHED
TCP Eagle:2929 219.137.227.10:4899 ESTABLISHED
TCP Eagle:3455 218.85.139.65:9002 ESTABLISHED
繼續我們的參數講解 -e
含義:本選項用於顯示關於乙太網的統計數據。它列出的項目包括傳送的數據報的總位元組數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有傳送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網路流量。
C:\>netstat -e
Interface Statistics
Received Sent
Bytes ????????? ????????
Unicast packets ?????? ??????
Non-unicast packets 886526 2386
Discards 0 0
Errors 0 0
Unknown protocols 4449
若接收錯和傳送錯接近為零或全為零,網路的接口無問題。但當這兩個欄位有100個以上的出錯分組時就可以認為是高出錯率了。高的傳送錯表示本地網路飽和或在主機與網路之間有不良的物理連線; 高的接收錯表示整體網路飽和、本地主機過載或物理連線有問題,可以用Ping命令統計誤碼率,進一步確定故障的程度。netstat -e 和ping結合使用能解決一大部分網路故障。
接下來我們開始講解兩個比較複雜的參數 -r 和 -s 。
-r是用來顯示路由表信息,我們來看例子:
C:\>netstat -r
Route Table(路由表)
Interface List(網路接口列表)
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 0c f1 02 76 81 ...... Intel(R) PRO/Wireless LAN 2100 3B Mini PCI
dapter
0x10004 ...00 02 3f 00 05 cb ...... Realtek RTL8139/810x Family Fast Ethernet
Active Routes:(動態路由
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.181 30
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.180 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.180 192.168.1.180 20
192.168.1.0 255.255.255.0 192.168.1.181 192.168.1.181 30
192.168.1.180 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.1.181 255.255.255.255 127.0.0.1 127.0.0.1 30
192.168.1.255 255.255.255.255 192.168.1.180 192.168.1.180 20
192.168.1.255 255.255.255.255 192.168.1.181 192.168.1.181 30
224.0.0.0 240.0.0.0 192.168.1.180 192.168.1.180 20
224.0.0.0 240.0.0.0 192.168.1.181 192.168.1.181 30
255.255.255.255 255.255.255.255 192.168.1.180 192.168.1.180 1
255.255.255.255 255.255.255.255 192.168.1.181 192.168.1.181 1
Default Gateway: 192.168.1.254(默認網關
===========================================================================

補充

Persistent Routes:(靜態路由
None
C:\>
-s 參數的作用前面有詳細的說明,來看例子
C:\>netstat -s
IPv4 Statistics (IP統計結果)
Packets Received = 369492(接收包數)
Received Header Errors = 0(接收頭錯誤數)
Received Address Errors = 2(接收地址錯誤數)
Datagrams Forwarded = 0(數據報遞送數)
Unknown Protocols Received = 0(未知協定接收數)
Received Packets Discarded = 4203(接收後丟棄的包數)
Received Packets Delivered = 3 6 5 2 8 7(接收後轉交的包數)
Output Requests = 3 69066(請求數)
Routing Discards = 0(路由丟棄數 )
Discarded Output Packets = 2172(包丟棄數)
Output Packet No Route = 0(不路由的請求包)
Reassembly Required = 0(重組的請求數)
Reassembly Successful = 0(重組成功數)
Reassembly Failures = 0(重組失敗數)
Datagrams Successfully Fragmented = 0(分片成功的數據報數)
Datagrams Failing Fragmentation = 0(分片失敗的數據報數)
Fragments Created = 0(分片建立數)
ICMPv4 Statistics (ICMP統計結果)包括Received和Sent兩種狀態
Received Sent
Messages 285 784(訊息數)
Errors 0 0(錯誤數)
Destination Unreachable 53 548(無法到達主機數目)
Time Exceeded 0 0(逾時數目)
Parameter Problems 0 0(參數錯誤)
Source Quenches 0 0(源夭折數)
Redirects 0 0(重定向數)
Echos 25 211(回應數)
Echo Replies 207 25(回復回應數)
Timestamps 0 0(時間戳數)
Timestamp Replies 0 0(時間戳回複數)
Address Masks 0 0(地址掩碼數)
Address Mask Replies 0 0(地址掩碼回複數)
TCP Statistics for IPv4(TCP統計結果)
Active Opens = 5217(主動打開數)
Passive Opens = 80(被動打開數)
Failed Connection Attempts = 2944(連線失敗嘗試數)
Reset Connections = 529(復位連線數)
Current Connections = 9(當前連線數目)
Segments Received = 350143(當前已接收的報文數)
Segments Sent = 347561(當前已傳送的報文數)
Segments Retransmitted = 6108(被重傳的報文數目)
UDP Statistics for IPv4(UDP統計結果)
Datagrams Received = 14309(接收的數據包)
No Ports = 1360(無連線埠數)
Receive Errors = 0(接收錯誤數)
Datagrams Sent = 14524(數據包傳送數)
-----------------------------------------------------
netstat -abnov ,顯示的該進程發起的程式進程或者檔案列表。此命令常用來判斷是否有可疑進程,之後進行相關操作。

相關詞條

熱門詞條

聯絡我們