netstat

netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。在CentOS 7.x中netstat命令默认没有安装,如果需要使用,需要安装net-snmp和net-tools软件包。

功能:输出网络连接、路由表、接口统计、伪装连接和组播成员

常用参数

  -a        列出所有网络状态,包括Socket程序 
  -t (TCP)    显示使用TCP协议端口的连接状况
  -u (UDP)  显示使用UDP协议端口的连接状况
  -n        使用IP地址和端口号显示,不使用域名与服务名 
  -l         仅显示监听状态的连接 
  -p        显示PID和程序名
  -r         显示路由表
  -e        显示扩展信息,例如uid等
  -s        按各个协议进行统计
  -c 秒数     指定每隔几秒刷新一次网络状态
 
查看本机开启的端口
 
最常用的方式,使用选项“-tuln”。 因为使用了“-l”选项,所以只能看到监听状态的连接,而不能看到已经建立连接状态的连接
 
 

 这个命令的输出较多。

  Proto:网络连接的协议,一般就是TCP协议或者UDP协议。

  Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。

  Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备ACK标志的数据包。

  Local Address:本机的IP地址和端口号。

  Foreign Address:远程主机的IP地址和端口号。

  State:状态。常见的状态主要有以下几种。

    -LISTEN:监听状态,只有TCP协议需要监听,而UDP协议不需要监听。

    -ESTABLISHED:已经建立连接的状态。如果使用“-l”选项, 则看不到已经建立连接的状态。

    -SYN_SENT:SYN发起包,就是主动发起连接的数据包。

    -SYN_RECV:接收到主动连接的数据包。

    - FIN_WAIT1:正在中断的连接。

    - FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。

    - TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。

    - CLOSED:套接字没有被使用。

在这些状态中,我们最常用的就是LISTEN和ESTABLISHED状态,一种代表正在监听,另一种代表已经建立连接。

查看本机有哪些程序开启的端口

使用“-p”选项,则可以查看到是哪个程序占用了端口,并且可以知道这个程序的PID

查看所有连接

 使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的连接(ESTABLISHED)、Socket程序连接等。因为连接较多,所以输出的内容有很多。

由于该命令输出内容较多,例子省略。

从“Active UNIX domain sockets”开始,之后的内容就是Socket程序产生的连接,之前的内容都是网络服务产生的连接。我们可以在“-an”选项的 输出中看到各种网络连接状态,而之前的“-tuln”选项则只能看到监听状态

原文地址:https://www.cnblogs.com/sswind/p/11772630.html