【linux】循序渐进学运维-基础篇-netstat命令详解

大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第62篇文章

文章目录


前言

在工作中,我们经常遇到一个问题,就是需要监听端口或者查看网络连接状态信息。 我们使用的命令一般是netstat,今天我们就来聊聊netstat的使用

一. netstat命令详解

作用

netstat 命令: 查看系统中网络连接状态信息

1. 常用参数
参数 作用
-a, --all 显示本机所有连接和监听的端口
n, --numeric 不解析域名
-u 显示udp协议连接
-t 显示tcp协议连接
-p 显示连接对应的PID与程序名
c 设置几秒钟更新一次
o 显示计时器
M 显示伪装的链接
2. 命令使用

【linux】循序渐进学运维-基础篇-netstat命令详解
我们来挨个看一下圈起来的第二行的参数,是什么意思?

1) 参数作用详解
参数 作用
Proto 连接协议的种类
Recv-Q 接收到字节数
Send-Q 从本服务器,发出去的字节数
Local Address 本地的IP地址,可以是IP,也可以是主机名
Foreign Address 远程主机的IP 地址
state 网络连接状态

我们来看下面的网络连接状态

2) 网络连接状态详解

【linux】循序渐进学运维-基础篇-netstat命令详解

  • CLOSED : 初始(无连接)状态。
  • CLOSING:等待远程TCP对连接中断的确认
  • LISTEN : 侦听状态,等待远程机器的连接请求。
  • ESTABLISHED: 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
  • TIME_WAIT : 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
  • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood***了)
  • CLOSE-WAIT:等待从本地用户发来的连接中断请求
  • FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
  • FIN-WAIT-2:从远程TCP等待连接中断请求

二. 案例实战

1. 服务器上有大量TIME_WAI连接,如何优化TCP连接,快速释放tcp连接 ?

[root@ecs-c13b ~]# netstat -antup |grep TIME_WAI

【linux】循序渐进学运维-基础篇-netstat命令详解

解决: 通过缩短 time_wait的时间来快速释放链接

首先我们得知道他的默认等待时间是多少?

【linux】循序渐进学运维-基础篇-netstat命令详解
上图中我们可以看到,默认是60S,下面我们来缩短时间,并查看一下:

【linux】循序渐进学运维-基础篇-netstat命令详解

2. 显示网卡列表

【linux】循序渐进学运维-基础篇-netstat命令详解

3. 显示网络统计情况

【linux】循序渐进学运维-基础篇-netstat命令详解

4. 显示路由信息

【linux】循序渐进学运维-基础篇-netstat命令详解
还有个类似的命令是route -n

【linux】循序渐进学运维-基础篇-netstat命令详解

5. 统计服务器中网络连接各个状态的个数

netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} ’
【linux】循序渐进学运维-基础篇-netstat命令详解

6. 查看链接服务器端口做多的IP地址

[root@gaosh-63 ~]# netstat -ant |grep “192.168.1.*” |awk ‘{print $5}’|awk -F: ‘{print $1}’ |sort -nr|

【linux】循序渐进学运维-基础篇-netstat命令详解

总结:

netstat在公司里使用的比较频繁,一定要认证掌握,主要关注antup这五个参数,其他的参数等到用的时候在查即可。

我是高胜寒,一个在教培行业不忘初心的人,欢迎留言探讨,一起学习

上一篇:Linux中的进程和服务


下一篇:Redis key 设计技巧