netstat命令用于网络协议数据信息统计及TCP/IP网络的当前连接。其参数也不多,当我们在CMD命令行中输入netstat /?命令时,会显示netstat的参数及相关解释,如下所示:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a 显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的
可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下
包含于创建连接或监听端口的组件序列
被显示。这种情况下,可执行组件名
在底部的 [] 中,顶部是其调用的组件,
等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限
可能失败。
-e 显示以太网统计信息。此选项可以与 -s
选项组合使用。
-n 以数字形式显示地址和端口号。
-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 显示当前
配置信息(只显示一次)
netstat -ano
参数a表示显示本机所有的连接与监听端口;n表示以数字的形式显示地址和端口;o表示显示与连接、监听端口相关的进程ID。示例如下:
C:/Documents and Settings/Administrator>netstat -ano
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 524
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1028
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 1288
TCP 127.0.0.1:1049 0.0.0.0:0 LISTENING 3276
TCP 127.0.0.1:2656 127.0.0.1:2657 ESTABLISHED 3464
TCP 127.0.0.1:2657 127.0.0.1:2656 ESTABLISHED 3464
TCP 127.0.0.1:2660 127.0.0.1:2661 ESTABLISHED 3464
TCP 127.0.0.1:2661 127.0.0.1:2660 ESTABLISHED 3464
TCP 192.168.1.98:139 0.0.0.0:0 LISTENING 4
TCP 192.168.1.98:1472 202.111.148.133:80 CLOSE_WAIT 176
TCP 192.168.1.98:2822 60.28.250.204:80 TIME_WAIT 0
TCP 192.168.1.98:2831 60.28.250.204:80 TIME_WAIT 0
TCP 192.168.1.98:2838 60.28.250.204:80 ESTABLISHED 3464
TCP 192.168.1.98:2839 60.28.250.204:80 ESTABLISHED 3464
TCP 192.168.1.98:2843 74.125.165.37:80 ESTABLISHED 3464
UDP 0.0.0.0:445 *:* 4
UDP 0.0.0.0:500 *:* 804
UDP 0.0.0.0:1025 *:* 552
对上面的显示结果解释如下:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 524
TCP表示使用的传输层协议是TCP;0.0.0.0:80表示本机上的任意地址,端口是80,即web server;0.0.0.0:0表示接受任意地址的连接,端口任意随机;LISTENING表示处于监听状态;524表示进程ID是524。这条结果就告诉我们,本地有web服务器程序在运行,其进程ID是524,在80端口上监听来自任意地址计算机的访问。由上面的结果显示本机有六个端口处于监听状态,它们分别是:80(Web Server)、135、139、445(Netbios Over TCP/IP)、3306(MySQL Server)、1049(Windows的alg进程),它们随时接受其它计算机建立连接、接受访问。
TCP 127.0.0.1:2656 127.0.0.1:2657 ESTABLISHED 3464
上面这条结果表示本机中的firefox(3464)进程建立了一个TCP连接。 ESTABLISHED表示已经建立了连接。
TCP 192.168.1.98:2838 60.28.250.204:80 ESTABLISHED 3464
上面这条结果表示本机(192.168.1.98)使用2838端口与远程web服务器(60.28.250.204)的80端口建立了连接,由进程ID 3464可以看出,这条连接是由Firefox(火狐浏览器)建立的。
TCP 192.168.1.98:2822 60.28.250.204:80 TIME_WAIT 0
上面这条结果表示本机(192.168.1.98) 在2MSL(4分钟)后拆除与远程(60.28.250.204)web服务器的连接。
要想清楚知道LISTENING、ESTABLISHED、CLOSE_WAIT、TIME_WAIT等状态的意思,就必需知道TCP协议的工作过程。
图一
图二
netstat -s -p ip
C:/Documents and Settings/Administrator>netstat -s -p ip //显示IP协议的统计信息
IPv4 Statistics
Packets Received = 25903
Received Header Errors = 0
Received Address Errors = 9
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 17
Received Packets Delivered = 25886
Output Requests = 25589
Routing Discards = 0
Discarded Output Packets = 0
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
netstat -r
C:/Documents and Settings/Administrator>netstat -r //参数r表示显示本机路由表
Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 16 36 8b 47 af ...... Broadcom 440x 10/100 Integrated Controller - 数
据包计划程序微型端口
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.98 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.98 192.168.1.98 20
192.168.1.98 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.1.255 255.255.255.255 192.168.1.98 192.168.1.98 20
224.0.0.0 240.0.0.0 192.168.1.98 192.168.1.98 20
255.255.255.255 255.255.255.255 192.168.1.98 192.168.1.98 1
Default Gateway: 192.168.1.1
===========================================================================
Persistent Routes:
None
今天突然发现了两个很有用的命令,以供分享
netstat -ano|findstr "stringName"与tasklist |"stringName"
测试:
C:/Documents and Settings/Administrator>netstat -ano|findstr "80"
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4060
TCP 192.168.1.100:1397 180.126.14.223:80 FIN_WAIT_1 4060
TCP 192.168.1.100:1420 220.181.37.210:80 TIME_WAIT 0
TCP 192.168.1.100:1422 180.126.14.223:80 TIME_WAIT 0
TCP 192.168.1.100:1432 220.181.37.151:80 TIME_WAIT 0
TCP 192.168.1.100:1438 220.181.37.210:80 TIME_WAIT 0
TCP 192.168.1.100:1443 64.233.189.102:80 ESTABLISHED 7796
TCP 192.168.1.100:1444 74.125.107.27:80 ESTABLISHED 7796
TCP 192.168.1.100:1445 124.114.251.206:80 TIME_WAIT 0
TCP 192.168.1.100:1464 124.114.251.206:80 TIME_WAIT 0
TCP 192.168.1.100:1475 114.229.198.8:80 ESTABLISHED 2956
UDP 127.0.0.1:123 *:* 1880
UDP 192.168.0.1:123 *:* 1880
UDP 192.168.1.100:123 *:* 1880
UDP 192.168.132.1:123 *:* 1880
再查看pid为7796端口的进程名称
C:/Documents and Settings/Administrator>tasklist|findstr "7796"
firefox.exe 7796 Console 0 70,636 K