关于connlimit使用的问题。

发布于 2022-09-29 03:21:27 字数 389 浏览 12 评论 0

通过安装补丁,connlimit模块已经好用,使用如下规则保护WEB,防止太多连接,
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 2 -j DROP
但问题是,一个正常WEB页面包含很多图片和脚本,因此访问这些页面时,必然要产生很多并发连接,这样,上述规则导致访问这些WEB页面时速度很慢,能过增加above数值,比如above 32,这样访问就完全正常了,但是调整32或较高数值时,这时的connlimit好象意义已经不大了,因此特向各位大侠请教:
如何在设置为above 2时,依然能以正常速度访问web页面?我想应该有办法的。
谢谢各位。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

塔塔猫 2022-10-06 03:21:27

>>这样访问就完全正常了,但是调整32或较高数值时,这时的connlimit好象意义已经不大了,因此特向各位大侠请教:

怎么会没有意义呢.太小的话,并且是通过内网访问你,岂不是许多人都上不去?

>>如何在设置为above 2时,依然能以正常速度访问web页面?我想应该有办法的。

没有,HTTP协议的原理告诉我们必须设置大点

瑾夏年华 2022-10-06 03:21:27

本来想用connlimit限制每IP并发连接WEB在2个以内,设置成32是可以,但已经达不到限制的目的了,而且connlimit还浪费资源,这不是还不如不用connlimit呢?

葵雨 2022-10-06 03:21:27

>> HTTP协议的原理告诉我们必须设置大点
的确,四层和七层是不一样的,虽然 HTTP 没用了断开了,但 conntrack 里仍有记录存在

凹づ凸ル 2022-10-06 03:21:27

>>而且connlimit还浪费资源,这不是还不如不用connlimit呢?

的确connlimit是比较费资源的,特别是在smp上

同尘 2022-10-06 03:21:27

>> 的确 connlimit 是比较费资源的,特别是在 smp 上
为什么说的确是用在 smp 上呢?
我看了 connlimit 的源代码,用的是 hash,只能看懂这些,能否讲解一下与 smp 的关系呢?

╄→承喏 2022-10-06 03:21:27

因为为了保证多个CPU的互斥访问,必须要锁定记录结构
struct ipt_connlimit_data {
        spinlock_t lock;
        struct list_head iphash[256];
};

spin_lock_bh(&data->lock);
假如多个CPU同时访问它的话,只能有一个CPU能够继续执行,其它的必须等待,这就浪费资源了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文