`
zl198751
  • 浏览: 273294 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Netstat 命令使用

阅读更多

Netstat

是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

 

 

Netstat的常用参数

-c 每隔1秒就重新显示一遍,直到用户中断它。 

-i 显示所有网络接口的信息,格式“netstat -i”。  

-n 以网络IP地址代替名称,显示出网络连接情形。  

-r 显示核心路由表,格式同“route -e”。  

-t 显示TCP协议的连接情况  

-u 显示UDP协议的连接情况。  

-v 显示正在进行的工作。  

-A 显示任何关联的协议控制块的地址。主要用于调试  

-a 显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字  

-i 显示自动配置接口的状态。那些在系统初始引导后配置的接口状态不在输出之列  

-m 打印网络存储器的使用情况  

-n 打印实际地址,而不是对地址的解释或者显示主机,网络名之类的符号  

-r 打印路由选择表  

-f address -family对于给出名字的地址簇打印统计数字和控制块信息。到目前为止,唯一支持的地址簇是inet  

-I interface 只打印给出名字的接口状态  

-p protocol-name 只打印给出名字的协议的统计数字和协议控制块信息  

-s 打印每个协议的统计数字  

-t 在输出显示中用时间信息代替队列长度信息。

netstat -

  ——本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

netstat -e

  ——本选项用于显示关于以太网的统计数据,它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。

netstat -r

  ——本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。

netstat -a

  ——本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。

netstat -n

  ——显示所有已建立的有效连接。

 

 

 

 

 

 

 

netstat -an中state含义

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:

  没有任何连接状态  其实可以man netstat , 看其中的stat部分解释

 

 

 

 

 

 

 

 

 

 

 

ESTABLISHED 指TCP连接已建立,双方可以进行方向数据传递

 

CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话, 那么你也就可以close 这个SOCKET,发送 FIN 报文给对方,也即关闭连接。所以你在CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。 

 

LISTENING: 指TCP正在监听端口,可以接受链接

TIME_WAIT: 指连接已准备关闭。表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2 状态。

FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和 FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报 文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN 报文,此时该SOCKET即进入到FIN_WAIT_1 状态。而当对方回应ACK 报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况 下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2 状态还有时常常可以用 netstat看到。 
FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2 状态下的SOCKET,表示半连接,也即有一方要求close 连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。

LAST_ACK: 是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了

SYNC_RECEIVED: 收到对方的连接建立请求,

这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。

SYNC_SEND: 已经主动发出连接建立请求。与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。

上述状态的定义与TCP规则定义的TCP状态图一致,可以对照如下两张TCP建立与终止链接的状态转换图进行理解。

 附图1. TCP建立连接之状态转换图

TCP中断连接之状态转换图


 

 

 

netstat -b 显示在创建每个连接或侦听端口时涉及的可执行程序,需要管理员权限,

               这条指令对于查找可疑程序非常有帮助。

复制代码
$ netstat -b

活动连接

协议 本地地址 外部地址 状态
TCP 10.41.10.89:1666 123.150.197.207:http CLOSE_WAIT
[IcbcDaemon.exe]
TCP 10.41.10.89:2041 221.176.31.1:8080 ESTABLISHED
[Fetion.exe]
TCP 10.41.10.89:2658 nrt19s11-in-f7:http ESTABLISHED
[chrome.exe]
TCP 10.41.10.89:2667 10.87.51.188:8014 SYN_SENT
[Smc.exe]
复制代码

netstat -n -o 

-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。

 

复制代码
$ netstat -n -o

活动连接

协议 本地地址 外部地址 状态 PID
TCP 10.41.10.89:1666 123.150.197.207:80 CLOSE_WAIT 1344
TCP 10.41.10.89:2041 221.176.31.1:8080 ESTABLISHED 4852
TCP 10.41.10.89:2750 10.87.51.188:8014 SYN_SENT 1584
复制代码

netstat -s -p

-s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的统计;-p 选项可用于指定默认的子网。

-p proto 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任
何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。

 

复制代码
$ netstat -s -p tcp

IPv4 的 TCP 统计信息

主动开放 = 1732
被动开放 = 10
失败的连接尝试 = 158
重置连接 = 128
当前连接 = 2
接收的分段 = 20486
发送的分段 = 19208
重新传输的分段 = 1750

活动连接

协议 本地地址 外部地址 状态
TCP 10.41.10.89:1666 123.150.197.207:http CLOSE_WAIT
TCP 10.41.10.89:2041 221.176.31.1:8080 ESTABLISHED
TCP 10.41.10.89:2763 bogon:8014 SYN_SENT


$ netstat -s -p udp

IPv4 的 UDP 统计信息

接收的数据报 = 1998
无端口 = 283
接收错误 = 3419
发送的数据报 = 3866

活动连接

协议 本地地址 外部地址 状态

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 55.4 KB
  • 大小: 73.2 KB
  • 大小: 33.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics