简单的Netstat命令解决大问题

网络与通信

作为一个Win2000服务器的网管,不但要及时升级,而且要关注自己服务器的运行情况,一有异常情况,立刻采取措施。然而,邮件服务器还是发生了不幸。本公司的内部局域网邮件服务器最近经常莫名其妙死机。重新启动后机器又变得完全正常,让人感到无从下手。在一筹莫展之时,朋友介绍使用Netstat命令,监视网络的连接状态,非常管用。
Netstat命令是一个监控TCP/IP网络的实用的工具,它可以显示实际的网络连接以及每一个网络接口设备的状态信息。Netstat命令的参数不是很多,笔者今天首先介绍一下自己用到的。
有一天笔者发现计算机CPU资源一直被一个进程占用了50%以上,连续几天。命令行状态下执行netstat -n后,我看到了所有的TCP连接,显示的列表参数为Proto、Local Address、Foreign Address、State,这些分别为:协议名称、笔者的机器IP和端口、远端机器IP和端口、连接状态。因为服务器只用来提供E-mail服务,除了110端口被连接,就是25端口被连接。问题就出现在25端口上面。笔者发现一个Foreign Address:4.46.47.83 持久地连接在我的服务器25端口上面,状态是Established。这显然是美国的IP地址,原来它一直在用我的SMTP连接!赶紧采取措施,笔者马上在Cisco PIX防火墙上面禁止了这一IP地址的连接,然后笔者又发现了几个IP地址经常对笔者的服务器进行恶意连接,在Cisco PIX防火墙上面作了禁止访问。重新启动机器,就再没有发现这种持久的耗费CPU资源的TCP连接了!
Netstat 命令真是立了大功,要不然还真的查不出来谁在捣乱。一经研究,发现Netstat是一个很有用的命令,不同的参数用来显示不同的连接状态!
Netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]
1.-a参数用来显示在本地机器和远程机器(显示机器名)的所有连接,所有协议、连接端口和连接状态。
2.-n参数用来显示本地主机和远程主机的TCP连接,并且显示的是机器的IP地址。
3.-p proto参数用来显示分别的协议连接,在-p后面跟不同的协议名称,例如:-p tcp -p udp -p IP等等。
4.-s参数用来显示-a参数显示的一切,不同的是,它把所有的连接按照不同协议分段列表。
5.-e显示的是本机收发数据包的多少和错误状态。在Win2000的网络属性中就可以看到,但是Win98中正好可以用此项命令实现该功能。
6.-r显示的是本机的路由表。