这是脚本,它带有mod_evasive:
#!/usr/bin/perl #test.pl: small script to test mod_dosevasive's effectiveness use IO::Socket; use strict; for(0..100) { my($response); my($SOCKET) = new IO::Socket::INET( Proto => "tcp", PeerAddr=> "MY_IP:80"); if (! defined $SOCKET) { die $!; } print $SOCKET "GET /?$_ HTTP/1.0\n\n"; $response = <$SOCKET>; print $response; close($SOCKET); }
如果我在PC上运行这个脚本,用我的VPS(openVZ,3个CPU核心2.53Ghz,1Gb RAM)的ipreplace“MY_IP”,服务器中的CPU负载增加得非常快。 如果我同时运行3或4个脚本实例,则CPU负载达到100%。 脚本停止后,CPU使用率将回到5-10%。
这是正常的吗? CSF被安装,并且阻塞了超过300个连接的IP,但似乎并没有阻止这个脚本。 如果我检查netstat -n | grep MY_PC_IP
netstat -n | grep MY_PC_IP
,即使在运行脚本时,也不会看到超过30或40个连接。
如果您针对您的站点运行脚本,CPU使用率是否增加? 我的服务器或Apache有什么问题?
100%的CPU如何加载问题? 你的脚本没有超时,所以显然它会完全加载目标服务器。 100%的CPU使用率并不意味着服务器正在死亡,只是它正在工作。 服务器实际上是没有响应或崩溃?