Netstat
監控TCP/IP網路的非常有用的工具
在In徠ternet RFC標準中,Netstat的定義是: Netstat是在內核中訪問網路連接狀態及其相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關報告。
Netstat是控制台命令,是一個監控TCP/IP網路的非常有用的工具,它可以顯示路由表、實際的網路連接以及每一個網路介面設備的狀態信息。Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各埠的網路連接情況。
如果你的計算機有時候接收到的數據包導致出錯數據或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,並能夠自動重發數據包。但如果累計的出錯情況數目佔到所接收的IP數據報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用Netstat查一查為什麼會出現這些情況了。
一般用netstat -an 來顯示所有連接的埠並用數字錶示。
netstat命令的功能是顯示網路連接、路由表和網路介面信息,可以讓用戶得知有哪些網路連接正在運作。使用時如果不帶參數,netstat顯示活動的 TCP 連接。
該命令的一般格式為:
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]
命令中各選項的含義如下:
Netstat
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網路介面的信息,格式“netstat -i”。
-n 以網路IP地址代替名稱,顯示出網路連接情形。
-r顯示核心路由表,格式同“route -e”。
-t 顯示TCP協議的連接情況
-u 顯示UDP協議的連接情況。
-v 顯示正在進行的工作。
-p 顯示建立相關連接的程序名和PID。
-b 顯示在創建每個連接或偵聽埠時涉及的可執行程序。
-e 顯示乙太網統計。此選項可以與 -s 選項結合使用。
-f 顯示外部地址的完全限定域名(FQDN)。
-o顯示與與網路計時器相關的信息。-s 顯示每個協議的統計。
-x 顯示 NetworkDirect 連接、偵聽器和共享端點。
-y 顯示所有連接的 TCP 連接模板。無法與其他選項結合使用。
interval 重新顯示選定的統計,各個顯示間暫停的 間隔秒數。按 CTRL+C 停止重新顯示統計。如果省略,則 netstat 將列印當前的配置信息一次。
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
——顯示協議名查看某協議使用情況
即連接狀態。在原模式中沒有狀態,在用戶數據報協議中也經常沒有狀態,於是狀態列可以空出來。若有狀態,通常取值為:
偵聽來自遠方的TCP埠的連接請求
在發送連接請求后等待匹配的連接請求
在收到和發送一個連接請求后等待對方對連接請求的確認
代表一個打開的連接
等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
從遠程TCP等待連接中斷請求
等待從本地用戶發來的連接中斷請求
等待遠程TCP對連接中斷的確認
等待原來的發向遠程TCP的連接中斷請求的確認
等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
沒有任何連接狀態
該命令(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 ,顯示的該進程發起的程序進程或者文件列表。此命令常用來判斷是否有可疑進程,之後進行相關操作。