美文网首页
netstat命令输出详解

netstat命令输出详解

作者: 木木与呆呆 | 来源:发表于2022-06-13 19:30 被阅读0次

1.说明

命令netstat用于查看Linux服务器上当前机器监听的端口信息,
对应的查询结果可以为我们提供很多有用的信息,
如下是执行命令后的查询结果:

netstat -nltp

2.Proto,Recv-Q,Send-Q等列

Proto:协议名

recv-Q:网络接收队列

表示收到的数据已在本地接收缓冲,但是还有多少没有被进程取走,recv()。如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。

send-Q:网路发送队列

对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。

recv-Q、send-Q这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。

3.Local Address本地地址

  1. 127.0.0.1:port 表示只能本机访问的端口,外网无法访问,如127.0.0.1:8080:表示监听本机IPv4的loopback地址的8080端口。如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问 。
  2. 类似的::1:port对应IPv6,如::1:9000:表示监听IPv6的回环地址的9000端口,::1这个表示IPv6的loopback地址。
  3. 0.0.0.0:port 表示对外开放的IPv4端口,外网可访问。
  4. :::port 表示对外开放的IPv6端口,外网可访问,::: 这三个冒号:中,前两个"::"是"0:0:0:0:0:0:0:0"的缩写,表示IPv6的"0.0.0.0",第三个冒号:是IP和端口的分隔符

4.Foreign Address外部地址

与本机端口通信的外部socket,
显示规则与 Local Address 相同,
一般都是0.0.0.0:*(IPv4)和:::*(IPv6)。

5. State 状态

链路状态,共有11种。state列共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。

状态参数主要有:

1) LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN。来自远方TCP端口的连接请求
2) SYN_SENT:客户端通过应用程序调用connect进行active open。于是客户端tcp发送一个SYN以请求建立一个连接,状态置为SYN_SENT。在发送连接请求后等待匹配的连接请求
3) SYN_RECV:服务端应发出ACK确认客户端的 SYN,同时自己向客户端发送一个SYN,状态置为SYN_RECV。在收到和发送一个连接请求后等待对连接请求的确认
4) ESTABLISHED:代表一个打开的连接,双方可以进行或已经在数据交互了。代表一个打开的连接,数据可以传送给用户
5) FIN-WAIT-1:主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态。等待远程TCP连接中断请求,或先前的连接中断请求的确认
6) CLOSE-WAIT:被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT。等待从本地用户发来的连接中断请求
7) FIN-WAIT-2:主动关闭端接到ACK后,就进入了 FIN-WAIT-2。从远程TCP等待连接中断请求
8) LAST-ACK:被动关闭端一段时间后,接收到文件结束符的应用程序将调用CLOSE关闭连接。这导致它的TCP也发送一个 FIN,等待对方的ACK,这就进入了LAST-ACK。等待原来发向远程TCP的连接中断请求的确认
9) TIME-WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。等待足够的时间以确保远程TCP接收到连接中断请求的确认
10) CLOSING:比较少见。等待远程TCP对连接中断的确认
11) CLOSED:被动关闭端在接受到ACK包后,就进入了closed的状态。链接结束,没有任何连接状态
12) UNKNOWN:未知的Socket状态

状态参数补充:

SYN:同步序列编号(Synchronize Sequence Numbers),该标志只在三次握手建立TCP连接时有效,表示一个新的TCP连接请求
ACK:确认编号(Acknowledgement Number),是对TCP请求的确认标志,同时提示对端系统已成功接收所有数据
FIN:结束标志(Finish),用来结束一个TCP对话,但对应端口仍处于开放状态,等待接收后续数据

6. PID/Program

PID即进程id,Program即使用该socket的应用程序

相关文章

  • netstat命令输出详解

    1.说明 命令netstat用于查看Linux服务器上当前机器监听的端口信息,对应的查询结果可以为我们提供很多有用...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • netstat命令详解

    netstat命令用来打印Linux网络系统的状态信息。 语法:netstat (选项) 选项: ●-a或--al...

  • netstat命令详解

    -a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示...

  • Netstat命令详解

    简介 Netstat命令用于显示各个网络相关的信息,如网络连接,路由表接口状态等等... 输出信息含义 执行net...

  • netstat命令详解

    Netstat命令用于显示协议统计数据和当前TCP/IP网络的连接相关信息。很多时候我们需要查看自己的电脑某些网络...

  • netstat 命令详解

    netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设...

  • netstat命令详解

    netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况...

  • linux 命令 netstat 命令详解

    netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。1.查看端口 2...

  • netstat 命令用法详解

    Netstat(network statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示...

网友评论

      本文标题:netstat命令输出详解

      本文链接:https://www.haomeiwen.com/subject/kanzmrtx.html