netstat 命令查看端口状态详解

转载请注明出处:

  netstat 可以查看服务器当前端口列表及指定端口的连接状态等;

  -t : 指明显示TCP端口,t是TCP的首字母。

  -u : 指明显示UDP端口,u是UDP的首字母

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序,p是program的首字母。

  -n : 不进行DNS轮询,显示IP(可以加速操作),n是numeric的首字母,以数字形式显示地址和端口号。

  -a:显示所有连接和侦听端口,a是all的首字母。

  -o:显示拥有的每个连接关联的进程id,o是own的首字母。

常用命令:

  1. 查看当前所有tcp端口

netstat -ntlp

  2. 查看当前所有udp端口

netstat -nupl

  3.显示系统所有端口

netstat -anp

  通过这个命令可以看到以下端口信息,可以查看服务端口占用和连接的状况;

  

 

 

  查询的有协议(Proto)、本地地址(Local Address)、外部地址(Foregin Address)、状态(State)、PID(进程标识符)

  Local Address:访问端口的方式,0.0.0.0 是对外开放端口,说明80端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口;

  Foregin Address:对外开放,一般都为0.0.0.0:*

  PID:此端口是那个进程在用,进程挂载此端口

  State有如下状态:

  CLOSED  初始(无连接)状态。

  LISTENING  侦听状态,等待远程机器的连接请求。

  SYN_SEND  在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。(SYN:synchronous 同步,ACK:acknowledgement 确认)

  SYN_RECV  在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。(RECV:receiver 收到)

  ESTABLISHED (建立)  完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。

  FIN_WAIT_1  在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。(FIN:finish 结束)

  FIN_WAIT_2  在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。

  TIME_WAIT  在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。

  CLOSING  在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。

  CLOSE_WAIT  在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。

  LAST_ACK  在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

 

  主动连接端可能的状态有:

    CLOSED SYN_SEND ESTABLISHED。

  主动关闭端可能的状态有:

    FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT。

  被动连接端可能的状态有:

    LISTEN SYN_RECV ESTABLISHED。

  被动关闭端可能的状态有:

    CLOSE_WAIT LAST_ACK CLOSED。

posted @ 2022-06-30 22:49  香吧香  阅读(13980)  评论(0编辑  收藏  举报