netstat
netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。在CentOS 7.x中netstat命令默认没有安装,如果需要使用,需要安装net-snmp和net-tools软件包。
功能:输出网络连接、路由表、接口统计、伪装连接和组播成员
这个命令的输出较多。
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”选项则只能看到监听状态