一般来说,服务器很慢的原因有很多。这可能是配置错误、脚本错误或一些奇怪的硬件。当然,也有可能有人对你的服务器进行了Dos(拒绝服务攻击)或DDOS(分布式拒绝服务攻击)。Dos攻击或DDos攻击的目的是耗尽服务器或网络资源,使其他用户无法使用。一般来说,这种攻击主要针对重要的网站或服务,比??如银行、信用卡支付网关甚至根域名服务器。DoS攻击主要是迫使目标主机重启或大量消耗其主机资源,使目标主机无法提供服务或阻碍主机与用户的通信,使主机无法提供正常的服务。在这篇文章中,我分享了如何在终端中使用netstat命令来判断服务器是否受到Dos攻击。netstat命令的使用手册中描述其作用是显示网络连接数、路由表、接口统计信息、伪连接数和组播成员。1.一些例子和解释netstat-na这个命令会显示所有活跃的网络连接。netstat-an|grep:80|sort显示80端口上的所有网络连接并排序。这里的80端口是http端口,所以可以用来监控web服务。如果看到同一IP有大量连接,则可以确定是单点流量攻击。netstat-n-p|grepSYN_REC|wc-l这个命令可以查出当前服务器有多少活跃的SYNC_REC连接。一般情况下这个值比较小,最好小于5。当有DoS攻击或者邮件炸弹时,这个值比较大。不过这个值跟系统有很大关系,有些服务器的值很高,也是正常现象。netstat-n-p|grepSYN_REC|sort-u列出所有连接的IP地址。netstat-n-p|grepSYN_REC|awk'{print$5}'|awk-F:'{print$1}'列出所有发送SYN_REC连接的节点的IP地址。netstat-ntu|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n使用netstat命令统计各主机到本机的连接数。netstat-anp|grep'tcp|udp'|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n列出连接到本机的所有UDP或TCP连接的IP号。netstat-ntu|grepESTAB|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-nr检查ESTABLISHED连接并列出每个IP地址的连接数。netstat-plan|grep:80|awk{'print$5'}|cut-d:-f1|sort|uniq-c|sort-nk1列出本机80端口连接的所有IP地址和连接数。80端口一般用于处理HTTP网页请求。2.如何减少DOS攻击一旦你得到攻击服务器的IP地址,你可以使用下面的命令来拒绝来自这个IP的所有连接。iptables-AINPUT1-s$IPADRESS-jDROP/REJECT注意需要将$IPADRESS替换为需要拒绝连接的IP地址。执行以上命令后,使用以下命令结束所有httpd连接,清理系统。killall-KILLhttpd然后执行以下命令重启httpd服务。servicehttpdstart#RedHat系统/etc/init/d/apache2restart#Debian系统
