netstat命令详解(转)

65 阅读3分钟

前言

一. netstat命令详解

  1. 常用参数
  2. 命令使用
  3. 参数作用详解
  4. 网络连接状态详解
  5. 二. 案例实战
  6. 服务器上有大量TIME_WAI连接,如何优化TCP连接,快速释放tcp连接 ?
  7. 显示网卡列表
  8. 显示网络统计情况
  9. 显示路由信息
  10. 统计服务器中网络连接各个状态的个数
  11. 查看链接服务器端口做多的IP地址
  12. 总结

前言

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

一. netstat命令详解

作用

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

1. 常用参数

|参数|作用

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

2. 命令使用

我们来挨个看一下圈起来的第二行的参数,是什么意思?

1) 参数作用详解

|参数|作用|

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

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

2) 网络连接状态详解

  • 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

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

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

上图中我们可以看到,默认是60S,下面我们来缩短时间,并查看一下:

2. 显示网卡列表

3. 显示网络统计情况

4. 显示路由信息

还有个类似的命令是route -n

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

netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} ’

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

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

总结:

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

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