3

我已经为我的服务器配置了各种反 DOS 模块(mod_qos、mod_evasive 等)。我现在要做的是运行一个简单的 PHP 脚本,它多次调用我网站上的 URL,以达到网站上的各种限制。理想情况下,能够以某种方式同时打开各种 URL 的脚本将是理想的。

这可能吗?如果没有,模拟来自一个 IP 的多个请求的最简单方法是什么?

我更喜欢在 Windows 7 中工作的工具?

更新:请记住,我希望能够查看我的服务器是否真的阻止了一些请求。我只玩了一点 AB,但到目前为止还没有显示请求被阻止?

4

3 回答 3

3

我认为你应该试试这个工具,

阿帕奇

围攻乔狗软件

阿帕奇 JMeter

Apache Bench 简单明了

你也应该试试tsung

是 github 上的 ruby​​ 内容

但是如果您仍然想在php中模拟ddos,那么我认为在php中您需要使用socket并在循环中向您的服务器发送请求,并在不等待服务器响应的情况下断开连接,这样您就可以模拟它。像“连接 - 调度请求 - 断开连接”并尽可能多次重复此操作。

于 2013-04-08T08:49:50.103 回答
2

这在 Windows 下非常有用:OpenLoad

我使用以下方法执行它:

openload.exe http://www.mysite.com 250

然后我可以很容易地在我的 Apache 错误日志中看到结果:

tail -f /usr/local/apache/logs/error_log

我能看见:

[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=59, c=XX.XXX.XX.XXX
[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=60, c=XX.XXX.XX.XXX
etc
于 2013-04-08T09:23:31.603 回答
1

最简单的模拟是在给定域的多个页面的数组上使用异步 xmlhttp 请求迭代器函数,在这些页面上,onload 事件启动另一个页面 url 调用并无限期地循环,或者循环一定次数。并且为了让它更有压力,你会并行打开同一个普通 JS + HTML 应用程序的多个实例(比如 9 个,甚至 12 个),看看是否有任何事情发生,或者在它们之后服务器会发生什么已经运行了相当长的时间,并且可能在大约一个小时的时间内达到了超过 100 万个请求。

于 2017-04-07T08:14:59.757 回答