FreeBSD查看网络情况

注意:本文最后更新于 2771 天前,有关的内容可能已经发生变化,请参考使用。

手机上一直收到来自服务器的负载过高报警短信,上服务器检查后发现被同一内网IP的机器DoS了,找出问题所在之后在ipf中添加上了禁止DoS主机的源IP,整个系统的负载瞬间就下来了,php-cgi进程也都空闲了。同一网段的IP还不知道是谁么,机房里就那么几台服务器,不是被入侵的话那就是有人搞鬼了…… 不知道哪位TX这么有闲情做这么些无聊之事,如果相当有闲情的话不妨联系一下我。

顺便记录一下FreeBSD下常用的统计当前系统网络连接状态的一些命令:

1)统计80端口连接数

    netstat -nat|grep -i "80"|wc -l

2)统计httpd协议连接数


    ps -ef|grep httpd|wc -l

3)、统计已连接上的,状态为“established'


    netstat -na|grep ESTABLISHED|wc -l

4)、看看哪个IP地址的连接最多


    netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F:'{print $1}'|sort|uniq -c|sort -r +0n
    netstat -na|grep SYN|awk '{print $5}'|awk -F:'{print $1}'|sort|uniq -c|sort -r +0n

netstat快速查看一下TCP连接情况


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

通过man netstat可以了解SYN_RCVD的意义。SYN_RCVD表示当前未完成的TCP SYN队列

要找到最可疑的恶意IP,其实用一行简单的Shell即可:


    netstat -na | grep 80 | grep ESTABLISHED | awk '{print $5}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c

当然,这些只是对小型的DOS和CC比较有效,统计了所有访问80端口web服务的连接数,当服务器遇到分布式的DDoS的时候就无能为力了。


「倘若有所帮助,不妨酌情赞赏!」

Holmesian

感谢您的支持!

使用微信扫描二维码完成支付


相关文章

发表新评论