netstat是一个监控TCP/IP网络的非常有用的工具,可以显示路由表、实际的网络连接,以及每一个网络接口设备的状态信息,可以让用户得知目前都有哪些网络连接正在运作。netstat用户显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果计算机有时候接收到的数据报导致出错数据或故障,不必感到奇怪,TCP/IP可以容许这些类型的错误并自动重发数据报。但如果累计出错情况数目占到所接收IP数据报相当大的百分比,或者它的数目正在迅速增加,就应该使用netstat查一查为什么会出现这些情况了。
一般用“netstat -na”命令来显示所有连接的端口并用数字表示。
1.语法
netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]
2.参数说明
-a:显示所有活动的TCP连接以及计算机侦听的TCP和UDP端口。
-e:显示以太网统计信息,如发送和接收的字节数、数据包数。
-n:显示活动的TCP连接,但只以数字形式表现地址和端口号,却不尝试确定名称。
-o:显示活动的TCP连接并包括每个连接的进程ID(PID)。可在Windows任务管理器“进程”选项卡上找到基于PID的应用程序。该参数可以与-a、-n和-p结合使用。
-p Protocol:显示Protocol所指定的协议的连接。在这种情况下,Protocol可以是TCP、UDP、TCPV6或UDPV6。
-s:按协议显示统计信息。默认情况下,显示TCP、UDP、ICMP和IP协议的统计信息。如果安装了Windows XP的IPV6协议,则显示有关IPV6上的TCP、IPV6上的UDP、ICMPV6和IPV6协议统计信息。可以使用-p参数指定协议集。
-r:显示IP路由表的内容。该参数与route print命令等价。
Interval:每隔Interval秒重新显示一次选定的信息。按“Ctrl+C”组合键停止重新显示统计信息。如果省略该参数,netstat将只打印一次选定的信息。
3.netstat命令使用详解
在适用netstat命令时还可以实现如下几个功能。
1)与该命令一起适用的参数必须以连字符(-)而不是以短斜线(/)作为前缀。
2)netstat提供下列统计信息。
Proto:协议的名称(TCP或UDP)
Local Address:本机计算机的IP地址和正在适用的端口号码。如果不指定-n参数,则显示与IP地址和端口对应的名称。如果端口尚未建立,端口以星号(*)显示。
Foreign Address:连接该插槽的远程计算机的IP地址和端口号码。如果不指定-n参数,就显示与IP地址和端口对应的名称。如果端口尚未建立,端口以星号(*)显示。
(state):表明TCP连接的状态。其中,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表示没有任何连接状态。
3)只有当网际协议(TCP/IP)网络连接中安装为网络适配器属性的组件时,该命令才可用。
4)如下为netstat的一些常用选项。
netstat -s:本选项能够按照各个协议分别显示其统计数据。如果应用程序(如Web浏览器)运行速度比较慢,或不能显示Web页之类的数据,就可以用本选项来查看以下所显示的信息。需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
netstat -e:本选项用于显示关于以太网的统计数据。它列出的项目包括传送数据报的总字节数、错误数、删除数、数据报数量和广播数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量(这个选项可以用来统计一些基本的网络流量)。
netstat -r:可以显示关于路由表的信息。除显示有效路由外,还显示当前有效的连接。
netstat -a:本选项显示一个有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
bnetstat -n:显示所有已建立的有效连接。
4.典型示例
netstat命令可显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统计信息(对于IP、ICMP、TCP和UDP协议)以及IPv6统计信息(对于IPv6、ICMPv6、通过IPv6的TCP以及通过IPv6的UDP协议)。使用时如果不带参数,netstat将显示活动的TCP连接。
下面再介绍几个netstat命令的应用实例,具体如下:
1)若想要显示本机所有活动的TCP连接,以及计算机侦听的TCP和UDP端口,则应键入“netstat -a”命令。
2)显示服务器活动的TCP/IP连接,则应键入“netstat -n”命令或“netstat(不带任何参数)”命令。
3)显示以太网统计信息和所有协议的统计信息,则应键入“netstat -s -e”命令。
4)检查路由表确定路由配置情况,则应键入“netstat -rn”命令。