V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Yingc
V2EX  ›  Linux

iptables+tc,能否针对每个来源 IP 单独公平限速?

  •  
  •   Yingc · 2018-01-08 21:34:12 +08:00 · 5367 次点击
    这是一个创建于 2503 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://i.imgur.com/WQmnMqm.png

    比如我要限制 VPS 的 5000:5500 端口,每个端口都享有单独的 12M 宽带,而不是这全部的端口共用这 12M 宽带

    tc qdisc add dev eth0 root handle 1:0 htb default 99 tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1000Mbit ceil 1000Mbit tc class add dev eth0 parent 1:1 classid 1:11 htb rate 12Mbit ceil 12Mbit prio 2 tc qdisc add dev eth0 parent 1:11 handle 10: sfq perturb 10 iptables -A OUTPUT -t mangle -p tcp --sport 5000:5500 -m recent --set --name frp --rdest -j CLASSIFY --set-class 1:11 iptables -A OUTPUT -t mangle -p udp --sport 5000:5500 -m recent --set --name frp --rdest -j CLASSIFY --set-class 1:11

    我知道 iptables 的 hashlimit 和 recent 模块能匹配每个来源 IP 而作出单独限制,但目前我就想问下,我以上的能否实现,或者给几个关键词,我去查下资料。

    8 条回复    2018-01-09 17:35:13 +08:00
    tammy
        1
    tammy  
       2018-01-08 22:29:30 +08:00 via Android
    开机场的麻烦花钱外包吧
    Yingc
        2
    Yingc  
    OP
       2018-01-08 22:36:39 +08:00
    @tammy 机场的源码里,早就有限速策略的了,我还何苦用这些限速?不自己没事找事吗?
    我的这个不是机场的,我问的是否能实现。并且我也知道 iptables 早就可以实现,只是我想知道 iotables + TC 的。
    由于我找了很多资料,大多数 TC 用在内网,或者只针对单个 IP。我觉得你也不怎么样。
    Yingc
        3
    Yingc  
    OP
       2018-01-08 22:41:17 +08:00
    @tammy 这是送给你的,不用找外包了。https://www.jianshu.com/p/4831387cee90
    azh7138m
        4
    azh7138m  
       2018-01-09 00:38:18 +08:00
    这个没啥意思的的,iptables 的 hashlimit 就能做,还有突发速率和平局分别设定,你拿 docker 跑的话,其实有限速的 api 可以用啊,为啥用 iptables ?
    azh7138m
        5
    azh7138m  
       2018-01-09 00:38:37 +08:00
    topbandit
        6
    topbandit  
       2018-01-09 10:36:01 +08:00
    hashlimit 就可以实现
    Yingc
        7
    Yingc  
    OP
       2018-01-09 15:01:54 +08:00
    @topbandit 谢谢,这我知道的,只是我想看看大伙对 TC 这个是不是和我想的一样,果然。这个不适合。
    Yingc
        8
    Yingc  
    OP
       2018-01-09 17:35:13 +08:00
    @azh7138m 谢谢指点。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:17 · PVG 01:17 · LAX 09:17 · JFK 12:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.