Linux中利用netstat命令查看网络状态

补充:

IP地址是服务器在互联网中唯一的地址标识。

假设有一台阿里云服务器,我们通过IP地址可以找到它。

服务器中启动了Tomcat、FTP服务...,

当客户端访问服务器时,如何确定访问的是哪一个服务?

解:

端口就是用于网络通信的接口,是数据从传输层向上传递到应用层的数据通道。

每个常规服务都有默认的端口号,通过不同的端口号就可以访问不同服务。

总结:

客户端通过IP地址访问服务器,假设数据包访问的是80端口,则为Web服务。

若数据包访问的是21端口,则访问的是FTP服务。

即:客户端可以通过固定的端口访问指定的服务。

而我们可以通过在服务器中查看已经开启的端口号,就可以判断服务器中开启了那些服务。

1、netstat

netstat是网络状态查看命令,可以查看到本机开启的端口及有哪些客户端连接。

2、命令格式

netstat [选项]

3、选项

-a:列出所有网络状态,包括Socket程序。

-c:秒数,指定每隔几秒刷新一次网络状态。

-n:使用IP地址和端口号显示,不使用域名与服务名。

-p:显示PID和程序名。

-t:显示使用TCP协议端口的连接状况。

-u:显示使用UDP协议端口的连接状况。

-I:仅显示监听状态的连接。

-r:显示路由表。

4、 案例

案例1、查看本机开启的端口

netstat -tuln

这里的选项-tuln是比较常用的方式。

Proto(协议):

一般就是 TCP 协议或者 UDP 协议。

Recv-Q(接收队列):

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

Send-Q(发送队列) :

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

Local Address(本机IP地址及端口号):

Foreign Address(远程主机IP地址及端口号)

State(状态):

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

-ESTABLISHED:已经建立连接的状态。

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

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

-FIN_WAIT1:正在中断的连接。

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

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

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




linux服务器查看所有docker linux查看所有服务状态命令_linux 查看所有端口号


案例2:

netstat -tulnp

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


linux服务器查看所有docker linux查看所有服务状态命令_linux 查看端口号_02


案例3:

netstat -an

查看所有连接。


linux服务器查看所有docker linux查看所有服务状态命令_linux 监听端口_03


欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。