使用netstat检测及监测网络连接

大家好,我是邪恶君子!今天,邪恶就给大家分享一下,使用小小的一个netstat命令,就能让你检测出系统是否处于安全状态!!!

这篇文档,复杂°:简单;难易°:易。坚决让小白都看得懂,学得会,掌握牢,上手快!好,废话不多说,看招:

大家都知道,Linux上的web服务每天都要面临成千上万的连接,这些连接都是要遵循TCP协议的,这都是众所周知的(至于TCP协议,这里就不在过多的介绍,不懂的同学可以自己搜索,友好多)。既然都是TCP协议连接,那就不得不面临一个网路最大的安全问题,DOS攻击及DDOS攻击,这些攻击是没有办法抹除的,因为这是针对TCP协议本身的一个设计缺陷儿造成的。所以,这就要求运维人员,时刻监测系统安全,是否处于被DOS攻击状态。

那么是怎么监测及检测的呢?这就要用到我一开始就要提到的netstat命令。先简单的介绍一下netstat命令的主要作用:可以查看系统当前的连接状态,不管是TCP连接还是udp协议连接,以及每个连接的进程号、是哪个应用程序、连接所用的端口号,这些都可以陈列出来。是不是很强大。

在讲监测检测之前,先给大家在普及一个知识,那就是TCP连接的状态,TCP进行3次握手,其过程有很多状态,不同的连接状态,都有想对应的状态码,看下面列表:

  • LISTEN:侦听来自远方的TCP端口的连接请求
  • SYN-SENT:再发送连接请求后等待匹配的连接请求
  • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
  • ESTABLISHED:代表一个打开的连接
  • FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
  • FIN-WAIT-2:从远程TCP等待连接中断请求
  • CLOSE-WAIT:等待从本地用户发来的连接中断请求
  • CLOSING:等待远程TCP对连接中断的确认
  • LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
  • TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
  • CLOSED:没有任何连接状态

大家最好一定要记住这些状态,因为运维人员在监控系统并发连接状态时,监控系统返回的也是这些状态码!

了解完这些后,还要再了解一个Linux系统的脚本中的一个小知识点,那就是“|”管道符,管道符的作用就不多说了,这里就简单提一下,因为下面的例子要用到。

好了,终于可以进入正题了,是不是都有点心急了呢 ?嘿嘿

以下这条命令将会显示出netstat的帮助信息,不懂的以及不太了解这个命令有哪些参数可用的都可以在这个命令的返回信息中看到:

  1. #netstat --help

显示当前所有活动的网络连接:

  1. #netstat -na

显示出所有处于监听状态的应用程序及进程号和端口号:

  1. #netstat -aultnp

如果想对一个单一的进行查询,只需要在命令后面再加上“| grep $”。这里就用到了管道符,以及grep筛选命令,$代表参数,也就是你要查询的那个。

如要显示所有80端口的网络连接:

  1. #netstat -aultnp | grep 80

如果还想对返回的连接列表进行排序,这就要用到sort命令了,命令如下:

  1. #netstat -aultnp | grep :80 | sort

当然,如果还想进行统计的话,就可以再往后面加wc命令。如:

  1. #netstat -aultnp | grep :80 | wc -l

其实,要想监测出系统连接是否安全,要进行多状态的查询,以及要分析,总结,还有就是经验。总的下来,才可以判断出连接是否处于安全状态。

下面就给大家再举一些例子,让大家彻底的明白,及彻底的理解这个命令的用处,使其发挥出最大功能。

  1. #netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。

  1. #netstat -n -p | grep SYN_REC | sort -u

列出所有连接过的IP地址。

  1. #netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN_REC连接节点的IP地址。

  1. #netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。

  1. #netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。

  1. #netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。

  1. #netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。

怎么样,是否能弄懂上面的这些命令及作用?在这儿呢,邪恶负责的说一句话:如果你能把上面的这些都彻底的理解消化了,能举一反三了,那么,恭喜您,您在Linux系统网络检测这一小块已经是一个高手了,不在是菜鸟或者小白了,为自己鼓鼓掌吧!!!

说明一点:命令及参数是死的,但是人是活的,要想发挥出其最大的功能,还需要自己去摸索,自己去理解及配合其他命令一起使用。同时,netstat -an在Windows上也管用哦!

那么,如果真的发现有大量的假连接了,那么也不要慌,要先找出一些“另类的IP地址”,怎么解释呢,因为在进行Dos攻击时,会为造出大量的假IP去连接服务器,进行3次握手,所以,这就要根据经验去找出假IP,然后通过防火墙规则,添加一个规则拒接这个假IP的网段连接。

例如:

  1. #iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

注意,你需将$IPADRESS 替换成需要拒绝连接的IP地址。执行完iptables 后呢,要重启一下web服务。

好了,今天的学习呢,到这儿就结束了,至于能掌握多少,这就要因人而异了,但我相信:天道酬勤!!!

最后,如果哪里有不对的地方,希望大家多多交流!!!

原文发布时间:2014-09-12

本文来自云栖合作伙伴“linux中国”

使用netstat检测及监测网络连接相关推荐

  1. linux查看网络连接命令,系统运维|使用netstat检测及监测网络连接

    大家好,我是邪恶君子!今天,邪恶就给大家分享一下,使用小小的一个netstat命令,就能让你检测出系统是否处于安全状态!!! 这篇文档,复杂°:简单:难易°:易.坚决让小白都看得懂,学得会,掌握牢,上 ...

  2. netstat监控大量ESTABLISHED连接与Time_Wait连接问题

    为什么80%的码农都做不了架构师?>>>    问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连接. # n ...

  3. 详解linux netstat输出的网络连接状态信息

    本博文为老男孩linu培训机构早期的培训教案,特分享以供大家学习参考. 全部系列分为五篇文章,本博文为第一篇: 目录:一.生产服务器netstat tcp连接状态................... ...

  4. 台式电脑网络连接配置异常_用360体检提示:发现网络连 接配置错误?台式机电脑上不了网用360断网急救箱检测总是网络连接配置...

    在上一篇文章中,小编为您详细介绍了关于<求I7高配要求所有高显示游戏通吃?台式电脑主机清理灰尘后>相关知识.本篇中小编将再为您讲解标题用360体检提示:发现网络连 接配置错误?台式机电脑上 ...

  5. WIN10无法连接共享文件夹(文件处于共享状态,但未对检测到的连接做出响应)

    刚入职一家 公司,给装机的win10系统,本来感觉挺高大上,结果发现无法连接内网共享文件,查询网上所有方法,发现还是解决不了,然后没办法,就尝试自己解决. 网上提供的解决方法 1.https://ji ...

  6. 普中51仿真器提示错误(连接异常,进入参数设置,检测下设备连接))

    普中51仿真器提示错误(连接异常,进入参数设置,检测下设备连接) 这里提供我遇到普中51仿真器提示错误(连接异常,进入参数设置,检测下设备连接)问题解决法子,如果你也有这个问题,也可以试下. 这里提供 ...

  7. Android实时监测网络连接状态及网络是否可用,类似微信的功能。

    实现实时监控网络变化,类似于微信的功能,当网络不可用时app能实时感知到,网上找了很多例子并不能实现,或者只实现其中一部分功能,我就参考大家的方法做一个组合. 一.网络状态变化监测,此方式只能监测网络 ...

  8. 详解android高仿微信后台接受消息,发送通知,监测网络连接

    公司让我研究websocket,利用这个时间写了个仿微信的demo. 服务器端功能比较简单:转发给所有的client (类似与群聊) android端功能:service后台接受消息:broadcas ...

  9. 应用netstat查看目标机TCP连接的状况

    命令: 显示所有TCP连接:netstat -n | awk '/^tcp/' 统计TCP连接个数:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in ...

最新文章

  1. 【转】数据库设计:物理结构设计
  2. 计算机网络之应用层:5、万维网、http协议
  3. 企业网络高级技术-VTP中继协议(2)
  4. ssm旅游管理系统项目介绍_基于jsp的网络相册管理系统的设计与实现
  5. 用内存映射在多个应用程序之间共享数据
  6. Android ViewPager + PagerAdapter 实现轮播图
  7. 数据分析工作到底在做什么
  8. 基于FPGA的人脸识别
  9. 清华大学android源码下载网站地址
  10. HelloWord你的第一个rainmeter皮肤
  11. 6.26 Python小记**args** kwargs
  12. jordan标准 相似_矩阵的Jordan标准形及其相似变换矩阵.pdf
  13. 常识介绍---什么是rss
  14. 上海航芯 | 全自动咖啡机设计方案
  15. WHQL认证最新申请流程
  16. React中文文档 7. 条件渲染
  17. android的虚拟机
  18. JSON字符串转数组并取值
  19. 如何看待Facebook 中国程序员之死:年仅 38 岁跳楼轻生,浙大 EE 毕业生,去年刚入职...
  20. 北京社保定点医院查询

热门文章

  1. 计算机应用试卷分析讲评课教案,数学试卷讲评课教案.doc
  2. v7000更换电池步骤_v7000 gen1 电池更换问题
  3. java 并发队列_JAVA并发编程:阻塞队列BlockingQueue之SynchronousQueue
  4. 开源 软件测试自动化工具,开源Web自动化测试工具Selenium IDE
  5. mysql 指定日期条件求和_如何在mysql中按每个日期对字段进行求和-问答-阿里云开发者社区-阿里云...
  6. Java实用教程笔记 内部类与异常类
  7. 【 Linux 】创建、查看、删除文件
  8. 前端学习笔记(五)-JavaScript语法基本概念
  9. SpringBoot之get请求404
  10. Map集合的遍历(java)