Linux系统运维命令:使用 netstat,grep,awk,sort组合命令,查看连接到本机某个端口最多的的网络设备

目            录

一、问题

二、基于netstat,组合命令,查出问题

(一)系统分析

(二)问题定位

二、解决问题

四、总结和拓展

(一)总结

(二)命令解释

(三)拓展

1、监控网站是否被攻击

2、监视自己的应用程序,防止被攻击


一、问题

       在互联网上部署了我们一套AS-V1000视频监控平台,今天我们在通过平台管理端访问的时候,非常慢,数据很长时间都出不来。

       我们首先怀疑机器网络问题,网络问题排出后;我们怀疑是机器是不是磁盘问题,或者是系统资源被耗尽了。0

       通过一些方式,排查,发现硬盘还有很大空间,同时CPU、I/O占用资源也比较少.

       再深入查找,发现mysqld的cpu占用率比较高。

因此定位可能是mysql相关问题。

二、基于netstat,组合命令,查出问题

(一)系统分析

.操作系统是Centos7.3, 安装的数据库是mysql5.7,系统中安装的应用程序是AS-V1000视频监控平台。

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

(二)问题定位

   使用组合命令:netstat -an -t | grep ":3306" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

   快速定位问题,如下:

[root@localhost ~]# netstat -an -t | grep ":3306" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

122.101.23.223:51084 ESTABLISHED

122.101.23.223:51085 ESTABLISHED

122.101.23.223:51088 ESTABLISHED

122.101.23.223:51089 ESTABLISHED

122.101.23.223:51090 ESTABLISHED

122.101.23.223:51091 ESTABLISHED

122.101.23.223:51092 ESTABLISHED

122.101.23.223:51093 ESTABLISHED

122.101.23.223:51094 ESTABLISHED

122.101.23.223:51095 ESTABLISHED

122.101.23.223:51096 ESTABLISHED

122.101.23.223:51097 ESTABLISHED

…………………

122.101.23.223:52895 ESTABLISHED

122.101.23.223:52896 ESTABLISHED

122.101.23.223:52897 ESTABLISHED

122.101.23.223:52898 ESTABLISHED

122.101.23.223:52898 ESTABLISHED

47.151.23.245:10574 ESTABLISHED

47.151.23.245:10578 ESTABLISHED

47.151.23.245:10580 ESTABLISHED

由此定位,是122.101.23.223这个主机,一直再连接本地mysql数据库,建立了将近2000个连接。

经过确认,这个地址是某个客户的电脑发过来的,肯定是这台电脑的原因。

二、解决问题

        问题查出来后,解决就非常简单:

  1. 客户电脑断开网络,并进行杀毒处理
  2. 本机防火墙打开,限制122.101.23.223对端口3306的访问

        问题解决!

四、总结和拓展

(一)总结

        这个问题之所以如此快的解决,主要是采用了合适的命令:

netstat -an -t | grep ":3306" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

(二)命令解释

netstat -an -t | grep ":3306" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

        这个命令组合的目的是列出所有与本地端口的3306建立的ESTABLISHED TCP连接,并显示这些连接的远程地址和端口,最后对输出进行排序。

        详细解释如下:

  1. netstat -an -t
    • netstat:一个用于显示网络连接、路由表、接口统计等网络相关信息的命令。
    • -a:显示所有活动的网络连接和监听的端口。
    • -n:以数字形式显示地址和端口号,而不是尝试解析主机名、服务名等。
    • -t:仅显示TCP连接。执行这个命令后,你会看到所有TCP连接的信息,包括本地地址、外部地址、状态等。
  2. grep ":3306"
    • grep:一个搜索特定模式的命令。
    • ":3306":这是你要搜索的模式,表示端口号为3306。这个命令会过滤出所有与端口3306相关的行。
  3. grep ESTABLISHED
    • 再次使用grep命令来过滤出状态为ESTABLISHED的连接。ESTABLISHED表示一个打开的连接,数据可以在两个方向上自由流动。
  4. awk '{printf "%s %s\n",5,6}'
    • awk:是一个文本处理工具,用于模式扫描和文本/数据提取。
    • '{printf "%s %s\n",$5,$6}':这是awk的命令部分。它告诉awk打印每一行的第5个和第6个字段。默认情况下,netstat的输出中,第5个字段是远程地址,第6个字段是远程端口。因此,这个命令会提取并打印出与端口3306建立的每个ESTABLISHED连接的远程地址和端口。
  5. sort
    • sort:一个排序命令。
    • 由于awk的输出可能不是按顺序的,使用sort命令可以对输出进行排序,使其更容易阅读。

(三)拓展

1、监控网站是否被攻击

        我们知道,网站很容易受到攻击,这时候,我们可以对网站的端口80 进行监视,采用如下命令即可:

netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

2、监视自己的应用程序,防止被攻击

       若我们的应用程序使用的端口是8740,可以采用如下命令,实时监控本端口是否被攻击

netstat -an -t | grep ":8740" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 06:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 06:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 06:42:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 06:42:02       20 阅读

热门阅读

  1. 【linux命令】-scp远程拷贝文件的命令scp使用

    2024-02-20 06:42:02       28 阅读
  2. 米贸搜|Facebook 老是封主页,怎么回事?

    2024-02-20 06:42:02       35 阅读
  3. [SSD 测试 1.3] 硬件测试之主控测试用例

    2024-02-20 06:42:02       32 阅读
  4. 【计算机程序装入和链接】

    2024-02-20 06:42:02       27 阅读
  5. unity中实现3D物体在UI前方

    2024-02-20 06:42:02       33 阅读
  6. ssh 免密登录

    2024-02-20 06:42:02       29 阅读
  7. Pytorch-Adam算法解析

    2024-02-20 06:42:02       31 阅读