全球主机交流论坛

标题: 請教 iptables 如何針對特定字串(網址)限速 [打印本页]

作者: 熱血大叔    时间: 2012-11-14 18:34
标题: 請教 iptables 如何針對特定字串(網址)限速
有個 iptables 針對特定字串符限速的問題想請教

iptables -t mangle -A INPUT -m string --algo bm --string "cachefly" -j DROP

這樣可以禁止下載所有包含 cachefly 字串符的封包

iptables -t mangle -A INPUT -m limit -s 198.98.99.132 --limit 25/s -j ACCEPT
iptables -t mangle -A INPUT -s 198.98.99.132 -j DROP

這樣可以限制 198.98.99.132 這個 IP 的下載速度

請問如何針對特定字串符(網址)限速呢,例如限制 cachefly 的下載速度:

wget http://cachefly.cachefly.net/100mb.test





作者: lazyzhu    时间: 2012-11-14 19:22
在 /etc/hosts 写不是更方便???
作者: 熱血大叔    时间: 2012-11-14 19:25
lazyzhu 发表于 2012-11-14 19:22
在 /etc/hosts 写不是更方便???

ip 不是固定的
作者: lazyzhu    时间: 2012-11-14 19:30
熱血大叔 发表于 2012-11-14 19:25
ip 不是固定的

有关系吗?
作者: 熱血大叔    时间: 2012-11-14 19:36
lazyzhu 发表于 2012-11-14 19:30
有关系吗?

主要是想根據特定字串去限制,不一定是同個網站,沒辦法全部寫於對映檔內
作者: 360安全卫士    时间: 2012-11-14 19:36
lazyzhu 发表于 2012-11-14 19:30
有关系吗?

骚年,求压测试42.121.80.131上的网站
HTTP入口:http://42.121.80.131/s
使用策略网站的地址:https://bbs.meidu.info/  与上面URL在同一服务器上
作者: 熱血大叔    时间: 2012-11-14 19:37
lazyzhu 发表于 2012-11-14 19:30
有关系吗?

例如要限制某些關鍵字或參數
作者: lazyzhu    时间: 2012-11-14 19:44
本帖最后由 lazyzhu 于 2012-11-14 19:45 编辑
熱血大叔 发表于 2012-11-14 19:37
例如要限制某些關鍵字或參數


iptables -I INPUT -j DROP -s cachefly.cachefly.net -m string --string "100mb.test"

限速类似
作者: Administrator    时间: 2012-11-14 19:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 熱血大叔    时间: 2012-11-14 19:54
lazyzhu 发表于 2012-11-14 19:44
iptables -I INPUT -j DROP -s cachefly.cachefly.net -m string --string "100mb.test"

限速类似 ...


謝謝,不過因為不是特定網站,所以想把 -s 網站或者 IP 改成用字串符號限制  

例如

iptables -t mangle -A INPUT -m limit -s 198.98.99.132 --limit 25/s -j ACCEPT
iptables -t mangle -A INPUT -s 198.98.99.132 -j DROP

改成類似

iptables -t mangle -A INPUT -m limit -m string --algo bm --string "cachefly" --limit 25/s -j ACCEPT
iptables -t mangle -A INPUT -m string --algo bm --string "cachefly" -j DROP

當然上面是不能用的,雖然沒錯誤但沒有限制速度的效果 ...

作者: wdlth    时间: 2012-11-14 19:55
iptables 可以写解包规则,但是效率……
作者: 熱血大叔    时间: 2012-11-14 19:55
Administrator 发表于 2012-11-14 19:44
wget有参数可以限制速度

wget 只是測試用,不是真的要限制 wget 下載 ...
作者: mlmm    时间: 2012-11-14 19:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 熱血大叔    时间: 2012-11-14 19:59
wdlth 发表于 2012-11-14 19:55
iptables 可以写解包规则,但是效率……

有其他更好的建議嗎? 先前嘗試用過 L7-filter 之類軟件的效率好像更差
作者: lazyzhu    时间: 2012-11-14 20:15
本帖最后由 lazyzhu 于 2012-11-14 20:33 编辑
熱血大叔 发表于 2012-11-14 19:54
謝謝,不過因為不是特定網站,所以想把 -s 網站或者 IP 改成用字串符號限制  

例如


iptables -t mangle -N CFL
iptables -t mangle -A INPUT -m string --string "cachefly" -j CFL
iptables -t mangle -A CFL -m limit --limit 25/sec -j ACCEPT


没测试的,你试试
作者: 熱血大叔    时间: 2012-11-14 20:32
lazyzhu 发表于 2012-11-14 20:15
iptables -t mangle -N CFL
iptables -t mangle -I INPUT -m string --string "cachefly" -j CFL
iptable ...

還是不行

小弟加上 string 的 --algo bm 和 最後 DROP 那行

---- 測試碼如下,還是無限制效果

iptables -t mangle -N CFL
iptables -t mangle -I INPUT -m string --algo bm --string "cachefly" -j CFL
iptables -t mangle -A CFL -m limit --limit 25/sec -j ACCEPT
iptables -t mangle -A INPUT -m string --algo bm --string "cachefly" -j DROP

wget http://cachefly.cachefly.net/100mb.test
作者: windywinter    时间: 2012-11-14 20:39
先用iptables标记特定的包,然后用tc对带标记的包限速。
作者: lazyzhu    时间: 2012-11-14 20:41
本帖最后由 lazyzhu 于 2012-11-14 20:47 编辑
熱血大叔 发表于 2012-11-14 20:32
還是不行

小弟加上 string 的 --algo bm 和 最後 DROP 那行


iptables -t mangle -N CFL
iptables -t mangle -A INPUT -m string --string "cachefly" --algo bm -j CFL
iptables -t mangle -A CFL -m limit --limit 25/sec -j ACCEPT
iptables -t mangle -A CFL -j DROP

作者: topl    时间: 2012-11-14 20:48
这个cpu的负载是不是很大?
作者: 熱血大叔    时间: 2012-11-14 20:52
lazyzhu 发表于 2012-11-14 20:41
iptables -t mangle -N CFL
iptables -t mangle -A INPUT -m string --string "cachefly" --algo bm -j C ...

這個測試過了不行
作者: 熱血大叔    时间: 2012-11-14 20:56
topl 发表于 2012-11-14 20:48
这个cpu的负载是不是很大?

還沒測試出來,不過單單限制速度的話是還好,因為只是捨棄封包
作者: topl    时间: 2012-11-14 21:01
熱血大叔 发表于 2012-11-14 20:56
還沒測試出來,不過單單限制速度的話是還好,因為只是捨棄封包

但是你的全部数据都要扫描一遍。如果流量大了。估计够呛。
作者: 熱血大叔    时间: 2012-11-14 21:04
topl 发表于 2012-11-14 21:01
但是你的全部数据都要扫描一遍。如果流量大了。估计够呛。

有什麼好的建議嗎?
作者: lazyzhu    时间: 2012-11-14 21:26
熱血大叔 发表于 2012-11-14 20:52
這個測試過了不行

当然不行,数据包里没有字符串cachefly
作者: 熱血大叔    时间: 2012-11-14 22:03
lazyzhu 发表于 2012-11-14 21:26
当然不行,数据包里没有字符串cachefly

所以 要怎麼改呢 感謝!!
作者: 熱血大叔    时间: 2012-11-14 22:07
lazyzhu 发表于 2012-11-14 21:26
当然不行,数据包里没有字符串cachefly

iptables -t mangle -A INPUT -m string --algo bm --string "cachefly" -j DROP
這樣
wget http://cachefly.cachefly.net/100mb.test
就不能下載了,但是沒辦法只限制速度 lazyzhu 給的方法試過了,還是不行啊
作者: 单手摘月    时间: 2012-11-14 22:18
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://d.168530.xyz/) Powered by Discuz! X3.4