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:套接字没有被使用。

dcb6387f5aee6ee1e428e1a10f47d58f.png

案例2:

netstat -tulnp

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

a4bb25da1511b0b87e0c3ab0b65d9b9d.png

案例3:

netstat -an

查看所有连接。

479ac12de66c1b297fe2008b95fb0b87.png

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

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

感谢支持。

GitHub 加速计划 / ne / netron
27.07 K
2.72 K
下载
lutzroeder/netron: 是一个用于查看和可视化神经网络模型的桌面应用程序,支持多种深度学习框架和常用的神经网络格式。适合用于可视化神经网络模型,尤其是对于需要进行神经网络模型调试和可视化的开发人员和研究人员。
最近提交(Master分支:1 个月前 )
9cee7758 - 2 个月前
63a272e8 - 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐