NETSTAT命令详解
![](http://hiphotos.baidu.com/lititao/abpic/item/ae2f48faedea1715a8d311e3.jpg)
作用:netstat命令的功能是
显示网络连接、路由表和网络接口信息,可以让用户得知目前都有
哪些网络连接正在运作。
NETSTAT中所用到的函数有
GetTcpTable();// 取得TCP连接表
GetUdpTable();// 取得UDP监听者表
GetIpStatistics();// 取得IP协议统计情况
GetIcmpStatistics();// 取得ICMP统计情况
GetTcpStatistics();// 取得TCP统计情况
GetUdpStatistics();// 取得UDP统计情况
关于它们的用法请参考MSDN;
GetTcpTable();// 取得TCP连接表
GetUdpTable();// 取得UDP监听者表
GetIpStatistics();// 取得IP协议统计情况
GetIcmpStatistics();// 取得ICMP统计情况
GetTcpStatistics();// 取得TCP统计情况
GetUdpStatistics();// 取得UDP统计情况
关于它们的用法请参考MSDN;
最常用的几个命令是:
netstat -a :显示所有连接和监听端口.(一般情况下,特指当前登陆的管理员账号,所有的连接只适用于当前系统所使用的用户权限.以及监听TCP/UDP以及http网页连接所用的端口.)
在这里具体讲一下,监听状态下端口的state情况:
FE: proto是指:连接方式-----Local address是指:本地连接地址----
foreign address是指:
本地建立连接的地址----State:是指当前端口状态.[ACTive con
tions是指当前本机活动连接,Proto是指连接使用的协议名称,Local Address是本地计算机的IP地址和连接正在使用的端口号,Foreign Address是连接该端口的远程计算机的IP地址和端口号,State则是表明TCP连接的状态.]
有时Netstat -a会出现下面一种情况:
TCP 0 0 Localhost.localdom:1521 localhost.localdo:32778 ESTABLISHED这句应该这样理解:
为了方便程序的开发和部署,现在很多程序采用网络机制来完成数据链路开发本地应用,这样连接端和被连接端都在本地,但采用的是网络机制通信,这样方便以后网络化部署,这样在本地应用时就会出现本地化网络通信。
netstat -an :
显示全部的端口状态。[要记住每一个端口对应一个服务,对应一个系统进程,你先搞明白打开的端口是什么服务所用,你就可以结束进程或关闭服务即可.]
netstat -r
netstat -n:以数字形式显示地址端口号.(只显示TCP连接。)
这里因为是Active Connections动态连接,所以只能显示连接开始还是结束,没有监听状态.
所以这里
netstat -n可以配合-A -O{PID}我们以直观的了解.
有的人会问系统默认的端口是打开的还是关闭的呢,这要看你的电脑的实际情况才能做决定,比如上面的连接图,我们会看到和远程连接的端口都是80,这个是正常的,因为你要
打开网页之类的就要和远程IP连接,除非你把你的所有程序都不运行,时候你再看看有很多端口就是不正常的了。
如果出现很多连接的话,先分析连接的端口和IP。如果你打开很多网页!那么肯定看到许多IP在连你!这也是一种查看自己是否中中毒的方法! 如果你的机子是在局域网中,且和其它机子共享传输文件,那么445呀139呀138呀之类的端口都是打开的且有可能是和其它机子相连的!
在这里我们详细介绍一下state的四种监听方式:
第一个是listening:监听
第二个是Estalished:已连接
第三个是Close_wait:连接已结束
以上三个是经常出现的,下面的这两个一般情况下是不会出现的:
Fin_Wait_1:是等待对方的fin报文
Syn_sent:是客户端已发送SYN报文.
LAST_ACK:这个有时也会出现。
有的地方介绍的不一样,平时在这们电脑是不会出现这么多选项的:
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:没有任何连接状态
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTAbLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCp连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCp等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCp对连接中断的确认
LAST-ACK:等待原来的发向远程TCp的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCp接收到连接中断请求的确认
CLOSED:没有任何连接状态
在这里面向大家介绍一个小的技巧:netstat -ano这个命令增加了一个PID号,还是不错的.
有的时候命令输出过多前面的就看不到了,这时候用这个命令:netstat -ano>c:\netstat.txt
如果有的是陌生的进程,就用taskkill /pid 进程ID/T命令来结束进程.
转载于:https://blog.51cto.com/coolfire/727297