netstat命令输出详解

netstat命令输出详解

1. 列出所有的TCP和UDP端口

2. 命令输出详解

  1. Proto:协议名(tcp协议还是udp协议)

  2. recv-Q:网络接收队列,send-Q:网路发送队列
    a. recv-Q:网络接收队列
    表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
    b. send-Q:网路发送队列
    对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
    c. recv-Q和send-Q分析
    这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况

  3. Local Addres解释
    a. Local Address 部分的0.0.0.0:3306 表示监听服务器上所有ip地址的3306端口。
    b. :::80 这个也表示监听本地所有ip的80端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址。

    注:“:::” 这三个: 的前两个"::",是"0:0:0:0:0:0:0:0"的缩写,相当于IPv6的"0.0.0.0",就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

    c. 127.0.0.1:631 这个表示监听本机的loopback地址的631端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)

  4. Foreign Address
    与本机端口通信的外部socket。显示规则与Local Address相同

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

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

  1. PID/Program name
    PID即进程id,Program即使用该socket的应用程序
posted @ 2022-12-16 11:29  Teddy_boy  阅读(137)  评论(0编辑  收藏  举报