netstat命令学习

转自:https://segmentfault.com/a/1190000022686430

1.介绍

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

 输出分为两个部分,

  1. Active Internet connections 有源TCP连接。协议是tcp,"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
    • Local Address代表本机IP地址和打开的端口号;
    • Foreign Address是远程计算机IP地址和端口号;
    • State:
      •  LISTENING 时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接;
      • ESTABLISHED 的意思是建立连接。表示两台机器正在通信。
      •  CLOSE_WAIT 对方主动关闭连接或者网络异常导致连接中断,TIME_WAIT 我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT;
  2. Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

其中,RefCnt:表示连接到本套接口上的进程号。

2.参数

  • -a (all) 显示所有选项,将处于LISTEN的tcp连接也显示出来,因为默认是不显示LISTEN状态的。
  • -t (tcp) 仅显示tcp相关选项。-u (udp) 仅显示udp相关选项。-l 仅列出有在 Listen (监听) 的服务状态。(LISTEN和LISTENING的状态只有用-a或者-l才能看到。)
  • -n 拒绝显示别名,能显示数字的全部转化成数字。【如果使用这个参数的话,上图中local/foreign address都会变为ip,其实不太容易观察 】
  • -p 显示建立相关链接的程序名.。【使用sudo可以观察到】
  • -o可以查看和连接相关的定时器信息:https://blog.csdn.net/young_0609/article/details/103210340

 最后的timer列相关字段含义如下:

  • keepalive keepalive的时间计时;
  • on 重发的时间计时;
  • off 没有时间计时;
  • timewait 等待时间计时

 

posted @ 2022-10-16 19:41  lypbendlf  阅读(478)  评论(0编辑  收藏  举报